我是C#的新手,只是有关EventArgs类的问题。我们知道定义是:
public class EventArgs
{
public static readonly EventArgs Empty;
public EventArgs();
}
我想用途之一是当您不关心传递自定义信息时
public event EventHandler<EventArgs> TestHappening;
private void MyMethod()
{
TestHappening( this, EventArgs.Empty );
}
但是我们不能通过使用以下方法实现相同的目标:
TestHappening( this, new EventArgs() );
答案 0 :(得分:2)
出于两个原因,最好使用EventArgs.Empty
:
检查参数是否为空
EventArgs newArgs = new EventArgs();
EventArgs emptyArgs = EventArgs.Empty;
Console.WriteLine(newArgs == EventArgs.Empty); // false
Console.WriteLine(emptyArgs == EventArgs.Empty); // true
答案 1 :(得分:0)
EventArgs.Empty只是定义一个不带数据的EventArgs实例。在C#中,有很多具有定义属性的类来声明此类的状态或种类或值,以支持仅使用C#的人员。 string.Empty
,int.MaxValue
等就是示例