1. ホーム
  2. c#

[解決済み] .NETには組み込みのEventArgs<T>があるのですか?

2023-04-14 13:56:34

質問

単一の引数を持つイベント引数のための一般的なEventArgsクラスを作成する準備をしています。

public class EventArg<T> : EventArgs
{
    // Property variable
    private readonly T p_EventData;

    // Constructor
    public EventArg(T data)
    {
        p_EventData = data;
    }

    // Property for EventArgs argument
    public T Data
    {
        get { return p_EventData; }
    }
}

その前に、C#には同じ機能が組み込まれているのでしょうか?C# 2.0 が出たときにそのようなものに出会ったような記憶があるのですが、今は見つけられません。

別の言い方をすれば、EventArgs の汎用クラスを自分で作らなければならないのか、それとも C# が提供しているのか?ご教授ありがとうございます。

どのように解決するのですか?

いいえ、あなたはおそらく EventHandler<T> これは、任意の特定のタイプのEventArgsのためにデリゲートを定義することができます。

私は個人的には EventArgs<T> はかなり適合していると思いますが。 イベントの引数で "payload" として使用される情報は、私の意見では、その使用法と期待されるプロパティを非常に明確にするために、カスタムクラスであるべきだと思います。 一般的なクラスを使用すると、意味のある名前を付けることができなくなります。 ("Data"は何を表すのでしょうか?)。