在C#中,EventArgs是一个通用的事件参数类,用于传递事件相关的数据。使用EventArgs的步骤如下:
- 创建一个继承自EventArgs的自定义事件参数类,例如:
public class MyEventArgs : EventArgs
{
public string Message { get; set; }
public MyEventArgs(string message)
{
Message = message;
}
}
- 在包含事件的类中定义一个事件,该事件使用自定义的事件参数:
public class MyClass
{
public event EventHandler MyEvent;
public void RaiseEvent(string message)
{
MyEventArgs args = new MyEventArgs(message);
OnMyEvent(args);
}
protected virtual void OnMyEvent(MyEventArgs e)
{
MyEvent?.Invoke(this, e);
}
}
- 在订阅事件的地方,定义一个事件处理方法:
public class Program
{
public static void Main(string[] args)
{
MyClass obj = new MyClass();
obj.MyEvent += Obj_MyEvent;
obj.RaiseEvent("Hello world");
}
private static void Obj_MyEvent(object sender, MyEventArgs e)
{
Console.WriteLine(e.Message);
}
}
在这个例子中,当MyClass实例的RaiseEvent方法被调用时,会触发MyEvent事件。在Main方法中,我们订阅了这个事件,并在Obj_MyEvent方法中处理事件。事件处理方法使用MyEventArgs参数来获取传递的消息,并在控制台上打印出来。
注意:在定义事件时,使用泛型委托EventHandler