6

フィールドを 1 つだけ持つ EventArgs クラスがいくつかあり、それを読み取るための適切なプロパティがあります。

public class SomeEventArgs : EventArgs
{
    private readonly Foo f;
    public SomeEventArgs(Foo f)
    {
        this.f = f;
    }
    public Foo Foo
    {
        get { return this.f; }
    }    
}

そのような動作を実装するための組み込みの汎用クラスはありますか、それとも自分で作成する必要がありますか?

public class GenericEventArgs<T> : EventArgs
{
    private readonly T value;
    public GenericEventArgs(T v)
    {
        this.value = v;
    }
    public T Value
    {
        get { return this.value; }
    }    
}

PS Microsoft Connect に関する提案を書きました

4

3 に答える 3

3

もしあるとしても、それは確かにあまり宣伝されていません! (つまり、 のような汎用的な目的で使用するためのものではありませFunc<T>。) 私自身も同じことを考えたことがあります。それはまれな要件ではありません、IMO。

これの欠点の 1 つは、もちろん、プロパティに意味のある名前がないことEventArgsですTuple。しかし、これにいくつかの異なるユースケースがあり、実際にその意味が明らかな場合は、それを選択してください:)

于 2010-06-19T19:53:47.597 に答える
2

このページの下部では、すべてのクラスが EventArgs クラスから継承されていることがわかります: http://msdn.microsoft.com/en-us/library/system.eventargs.aspx

最も適切なのは ReturnEventArgs http://msdn.microsoft.com/en-us/library/ms615572.aspxですが、このクラスは WPF プロジェクトによってのみ参照される PresentationFramework.dll にあります。

ですので、自作することをお勧めします。

于 2010-06-19T19:56:14.010 に答える
1

ないと思います。
この質問を自問するのはあなただけではないようです。こちら
をご覧 ください

于 2010-06-19T19:54:46.580 に答える