2012-03-11 11 views
0

.NETでイベントを作成したり使用したりするときは、「追加」と「削除」は一度も使用していません。以下のコードを見てください:.NET - イベントADDとREMOVE

public event EventHandler InitComplete 
    { 
     add 
     { 
      base.Events.AddHandler(EventInitComplete, value); 
     } 
     remove 
     { 
      base.Events.RemoveHandler(EventInitComplete, value); 
     } 
    } 

私はこれが非常に単純な質問であることを認識していますが、「値」はどこに宣言されていますか?誰でも追加と削除の使用に関する良いチュートリアルをお勧めできますか?私はいくつかを読んだが、まだ賢明ではない。

答えて

6

valueは、「どのようなハンドラがサブスクライブまたはアンサブスクライブされているか」です。似ていると

button.Click += HandleClick; 

:だから、あなたが考えることができる点で

button.add_Click(new EventHandler(HandleClick)); 

、イベントがちょうどプロパティのようなものです:

private string foo; 
public string Foo 
{ 
    get { return foo; } 
    set { foo = value; } 
} 

...とのことを除いてあなたはgetsetの代わりにaddremoveを持っています。

詳細については、my article on events and delegatesを参照してください。詳細については、C#4言語仕様のセクション10.8を参照してください。

+0

ありがとうございました。私はあなたのチュートリアルを通して見ていきます。なぜ私は '値'が宣言されていないのか混乱しているので、いくつかのコードで質問を編集しました。私はおそらく簡単な説明があることを理解しています。 – w0051977

+1

はい、簡単な説明は、2番目のコード例がVB.NETにあることです。これはC#の最初の例です。 C#のプロパティ宣言の構文を見ると、そこに宣言されている値はないことに気付くでしょう。 –

+0

@Lasse V. Karlsen、ありがとう。私はその問題を修正した。私はVisual Basicを使用しますが、質問でC#の例を使用しました。混乱させて申し訳ありません。 – w0051977

関連する問題