イベントとイベントを発生させるメソッドを
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 は発生しないな。
メモしておこう.......φ(..)メモメモ