0

イベントについて学習しようとしていますが、EventArgsから派生したEventArgs情報クラスを作成するタスクがあります。これが何を意味するのか、どうすればよいのかわかりません。

4

3 に答える 3

2

イベント引数は、発生したイベントに関する追加情報(たとえば、変更された値やアイテムのIDなど)を提供するために作成されます。イベントハンドラの署名には、とが含まれsenderますEventArgs

はかなり空なのでEventArgs、通常は独自のクラスを実装します。

public event EventHandler<FooEventArgs> Foo; // produces handler(object sender, FooEventArgs e)

public sealed class FooEventArgs : EventArgs
{
    public FooEventArgs(int bar)
    {
        this.Bar = bar;
    }

    public int Bar { get; private set; }
}

これは、他の場所で作成するのと同じように、通常のサブクラスです。これ以上の情報を渡す必要がない場合は、EventArgs.Empty(静的フィールド)を使用します。

于 2012-08-09T08:22:44.697 に答える
1

これを試して

public class EventArgsInfo : EventArgs
{
  public string MyCustomProperty { get;set; }
}
于 2012-08-09T08:19:18.470 に答える
0

EventArgsイベントに引数が与えられた型を表します(そのため、名前が付けられています)。

標準のEventArgsタイプには、最小限の情報が含まれています(おそらく何も含まれていません)。ベストプラクティスは、(作成するカスタムイベントごとに)独自の継承を作成し、特定のイベントのニーズに合わせて引数を拡張することです。

詳細については、EventArgsクラスのMSDNドキュメントを確認してください。カスタムEventArgsクラスを作成して使用する方法の良い例が含まれています。

于 2012-08-09T08:20:52.987 に答える