C#でのeventargsの値の与え方はどうですか。
C#では、EventArgsに値を割り当てる方法はいくつかあります。
- EventArgsのカスタムサブクラスを使用すると、EventArgsを継承したサブクラスを作成し、必要なプロパティやメソッドを追加できます。そして、イベントを発生させる際には、そのサブクラスをインスタンス化して、イベントハンドラに渡す引数として使用します。
public class CustomEventArgs : EventArgs
{
public string Message { get; set; }
}
public class MyClass
{
public event EventHandler<CustomEventArgs> MyEvent;
public void TriggerEvent()
{
// 实例化CustomEventArgs并赋值
var args = new CustomEventArgs { Message = "Hello World!" };
// 触发事件,并传递args作为参数
MyEvent?.Invoke(this, args);
}
}
- 一部分的場合では、組み込みのEventArgsのサブクラスを直接使用するか、EmptyEventArgsなどの組み込みのEventArgsの派生クラス、例えばPropertyChangedEventArgsを使用することもできます。これらのサブクラスには通常、事前に定義されたいくつかの属性が含まれており、直接使用または設定することができます。
public class MyClass
{
public event EventHandler<EventArgs> MyEvent;
public void TriggerEvent()
{
// 触发事件,并传递空的EventArgs对象作为参数
MyEvent?.Invoke(this, EventArgs.Empty);
}
}
- 匿名型: 時折、EventArgsへの値の設定に匿名型を使用することができます。匿名型は一時的で読み取り専用の型で、初期化子を使って作成し、EventArgsパラメータに直接値を代入することができます。
public class MyClass
{
public event EventHandler<EventArgs> MyEvent;
public void TriggerEvent()
{
// 使用匿名类型为EventArgs赋值
var args = new { Message = "Hello World!" };
// 触发事件,并传递args作为参数
MyEvent?.Invoke(this, args);
}
}
どのような方法を使用しても、EventArgsに異なる値を割り当て、それをイベントの処理プログラムに渡すことができます。