Имеется базовый класс с некоторым событием, как вызвать это событие в дочернем классе? - C#

Узнай цену своей работы

Формулировка задачи:

Братцы, что то я отморозился, помогите разобраться с концепцией... Суть проблемы, имеется базовый класс с некоторым событием, как вызвать это событие в дочернем классе?
public class BaseClass
    {
 
        public delegate void systemExceptionDelegate(Exception sysException);
 
        public event systemExceptionDelegate OnSystemException;
 
        public BaseClass()
        {
            //
            // TODO: Add constructor logic here
            //
        }
 
        public void Main()
        {
            SystemException sysEx = null;
 
            sysEx = new SystemException('My system exception!');
 
            OnSystemException(sysEx);
 
        }
    }
 
public class DerivedClass:BaseClass
    {
        public DerivedClass()
        {
            // nothing yet
        }
 
        public void DoSomeWork()
        {
                        // вот тут хотелось бы вызвать event from base class
            base.OnSystemException(new SystemException('Hello World!'));
        }
    }

Решение задачи: «Имеется базовый класс с некоторым событием, как вызвать это событие в дочернем классе?»

textual
Листинг программы
public class SystemExceptionEventArgs : EventArgs
{
    private Exception _exception;
 
    public Exception Exception
    {
        get { return _exception; }
    }
 
    public SystemExceptionEventArgs( Exception e )
    {
        _exception = e;
    }
}
 
public delegate void SystemExceptionEventHandler( BaseClass sender, SystemExceptionEventArgs e );
 
public class BaseClass
{
    public event SystemExceptionEventHandler SystemException;
 
    protected virtual void OnSystemException( SystemExceptionEventArgs e )
    {
        if ( SystemException != null )
        {
            SystemException( this, e );
        }
    }
}
 
public class DerivedClass : BaseClass   
{   
    public void DoSomeWork()
    {
        OnSystemException( new SystemExceptionEventArgs( new Exception( 'Hello World!' ) );
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы