Имеется базовый класс с некоторым событием, как вызвать это событие в дочернем классе? - 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!' ) );
}
}