イベントとイベントを発生させるメソッドを
public class Sample
{
public Sample()
{
// 何もしないイベントハンドラを1個登録しておく。
Hello = delegate {};
}
public event EventHandler<HelloEventArgs> Hello;
protected virtual void OnHello(HelloEventArgs e)
{
// クラス内部で null を代入しないかぎり、
// Hello は null にならない。
Hello(this, e);
}
}
という風に実装しているコードを見かけた。
なるほど。これならイベントハンドラを外部から -= で全て登録解除されても NullReferenceException は発生しないな。
メモしておこう.......φ(..)メモメモ