仮想メソッドとオーバーライドを使用すると、期待どおりに動作しないサンプル コードを次に示します。なんで?
main()
{
Child c = new Child();
c.Trigger = new Trigger();
}
public class Parent
{
public Trigger _trigger;
public Trigger Trigger
{
set
{
_trigger = value;
_trigger.TriggerEvent += Trigger.TriggerHandler(OnTrigger);
}
}
internal virtual void OnTrigger(int type)
{
Write("I don't want to write this!");
}
}
public class Child : Parent
{
internal override void OnTrigger(int type)
{
Write("I want this to be written, but it's not.");
}
}
親のイベントをサブスクライブするメソッド「OnTrigger」はオーバーライドされません。親でサブスクライブされているイベントに子のメソッドを実行させる方法は?