0

質問に対するすべての回答のコード:

EventHandler handlernullでないかどうかのチェックがあります

EventHandler handler = this.somethingHappened;  
if (handler != null)  
{  
   handler(this, EventArgs.Empty);  
}  

サブスクリプションあり:

 observable.SomethingHappened += observer.HandleEvent;

インターネット上の記事、チュートリアル、例などにもあります。
このハンドラーがいつどのようにnullになるかはわかりませんが。

私は同様の質問への回答を読みました:

でも、そういう例やイラストでどうhandlerなるのか、まだわかりませんでしnullた。

このコードのハンドラーがどのように発生する可能性があるかを誰かに説明できますnullか?

4

1 に答える 1

2

簡単に言うと、特定のイベントハンドラーにデリゲートがまだ割り当てられていない場合、そのデリゲートはnullになり、それを呼び出そうとするとNullReferenceExceptionが発生します。

呼び出す前にnullチェックを実行すると、このNullReferenceExceptionが発生しなくなります。

于 2013-02-03T18:05:29.493 に答える