У меня есть родительский класс, который запускает событие для производных классов. Проблема в том, что обработчик события всегда нулел.Наследование обработчика событий
Class Plugin()
{
public delegate void BufferReadyHandler(string str);
public event BufferReadyHandler OnBufferReady;
public ClassPlugin(eGuiType _guyType)
{
GuiType = _guyType;
}
protected void Sp_DataReceived_Parent(object sender, SerialDataReceivedEventArgs e)
{
strCommonBuffer += serial.ReadExisting();
if (strCommonBuffer.Contains("\r\n"))
{
if (OnBufferReady != null) <<-------NULL
OnBufferReady(strCommonBuffer);
strCommonBuffer = string.Empty;
}
}
}
то есть некоторые производные классы, которые связаны с этим событием:
class ClassIO : ClassPlugin
{
public ClassIO(eGuiType _guyType) : base(_guyType)
{
...
OnBufferReady += ClassIO_OnBufferReady;
}
private void ClassIO_OnBufferReady(string str)
{
...
}
}
проблема заключается в том, что OnBufferReady событие в родительском классе утратившим все дни поэтому никогда не увольняют. Спасибо за любую помощь.
Для участия в мероприятиях используйте делегаты 'EventHandler'. Это по соглашению в C#. –
dymanoid
Я не вижу причины, по которой событие не может быть установлено. Просьба привести несколько примеров того, как вы создаете классы. – dymanoid
@x Но база. не требуется, поскольку производный класс не имеет события onbufferready, поэтому автоматически переходит к родительскому – Luca