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子类:在某些情况下,可以直接使用内置的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赋予不同的值,并将其传递给事件的处理程序。
相关问答