パブリッシャーとサブスクライバのパターンとして、異なるオブジェクト間の「通信」に使用します。代表者とイベント
は、私は時々イベントがstaticとして宣言されていることがわかり、いくつかの例ですと、時にはそうではありません。
public delegate void LogProgress(string str)
public static event LogProgress LogProgressEvent;
if (LogProgressEvent != null)
LogProgressEvent(tempString);
なぜ、いつ、私は、静的を使用する必要がありますか?
に静的なイベントを使用しての意味を参照してください有用であろうと思いますか? しかし、そうした場合、イベントを呼び出すクラスのインスタンスを作成する必要があります。 DataClass data = new DataClass(); data.LogProgressEvent + =新しいdata.LogProgress(UpdateTextBox); – markiz
ちょっと注意してください。いくつかの重要な場所(インフラストラクチャなど)からしか購読していない場合は、OKにしてください。データエンティティ( 'Person'、' Order'など) –
からの購読は避けてください。しかし、まだ "データエンティティ"オブジェクトで使用している場合は、このデータエンティティオブジェクトがなくなった後にガベージコレクタを消去しないでください。 – markiz