我有抽象類是否可以在抽象類中創建事件?
public abstract class BaseClass
{
public delegate void ContextMenuClickHandler(object sender, Point point);
public event ContextMenuClickHandler OnContextMenuClick;
public void OnMouseClick(MouseEventArgs e)
{
OnContextMenuClick(this, new Point((int) x, (int) y));
}
}
,我插事件:
Base.ContextMenuClickHandler += ShowContextMenu;//error
void ShowContextMenu(object sender, Point point)
{
}
錯誤:
'Base.ContextMenuClickHandler' is a 'type', which is not valid in the given context
如何解決呢?
好,並需要添加靜態公共靜態事件ContextMenuClickHandler OnContextMenuClick; – Mediator
你不應該在非靜態類中創建一個公共靜態屬性。首先,它不是單元測試的,其次你在一個上下文中混合了2個不同的生命週期,這可能導致難以發現的錯誤......如果你需要在任何地方都可用,請嘗試命令模式。 – cRichter