c#

C#中的eventargs怎么赋值

小亿
110
2023-12-23 15:18:17
栏目: 编程语言

在C#中,可以通过以下几种方式为EventArgs赋值:

  1. 使用自定义的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);
    }
}
  1. 使用内置的EventArgs子类:在某些情况下,可以直接使用内置的EventArgs子类,如EmptyEventArgs,或者使用派生自内置EventArgs的子类,如PropertyChangedEventArgs。这些子类通常包含一些预定义的属性,可以直接使用或设置。
public class MyClass
{
    public event EventHandler<EventArgs> MyEvent;

    public void TriggerEvent()
    {
        // 触发事件,并传递空的EventArgs对象作为参数
        MyEvent?.Invoke(this, EventArgs.Empty);
    }
}
  1. 匿名类型:在某些情况下,可以使用匿名类型为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赋予不同的值,并将其传递给事件的处理程序。

0
看了该问题的人还看了