[解決済み] .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"は何を表すのでしょうか?)。
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み】クロススレッド操作が有効でない。作成されたスレッド以外のスレッドからアクセスされたコントロール
-
[解決済み] C#の[Flags]Enum属性の意味とは?
-
[解決済み] .NETでC#オブジェクトをJSON文字列に変換するには?
-
[解決済み] .NETでフォーマット文字列のブレース(中括弧)をエスケープする方法
-
[解決済み] .NETコンソールアプリケーションでアプリケーションのパスを取得するにはどうすればよいですか?
-
[解決済み] .NETでGmailを使ったメール送信
-
[解決済み] なぜC#は汎用属性型を禁止しているのですか?
-
[解決済み】C#には拡張プロパティがある?
-
[解決済み] .NETのApplicationExceptionは何のためにあるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み】ORA-01008: すべての変数がバインドされていません。これらはバインドされています。
-
[解決済み】C# - パスに不正な文字がある場合
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】Nullableオブジェクトは値を持たなければならない?