現在、私は同じクラスのevent
へのサブスクリプトではなく、OnActivate
のような既存のメソッドをオーバーライドするかどうかに苦労しています。クラスのイベントサブスクリプションの代わりにオーバーライドを使用
たとえば、私は、イベントを実装して、次のクラス、持っている:
public class Base
{
public delegate void DoSomeThing(object sender, EventArgs e);
public event DoSomeThing DoSomeThingEventHandler;
public virtual void OnDoSomeThing(EventArgs e)
{
if (DoSomeThingEventHandler != null)
{
DoSomeThingEventHandler(this, e);
}
}
}
をそして私はDoSomeThing
が呼び出された場合、通知されることを望んでいるBase
から派生するクラスを持っています。私はDoSomeThing
をオーバーライドする必要がありますか、私はイベントをサブスクライブする必要があります
策1:
public class B1 : Base
{
public override void OnDoSomeThing(EventArgs e)
{
// Do some stuff here
base.OnDoSomeThing(e);
}
}
第二の溶液
public class B2 : Base
{
public B2()
{
DoSomeThingEventHandler += B2_DoSomeThingEventHandler;
}
private void B2_DoSomeThingEventHandler(object sender, EventArgs e)
{
// Do some thing here
}
}
あなたは、ソリューションB1
またはB2
を好むだろうか?
ありがとうございました!この場合、最優先で
イベントを無効にする –