我记得在多个场合和多个地点读到,在触发典型事件时:
protected virtual OnSomethingHappened()
{
this.SomethingHappened(this, EventArgs.Empty);
}
如果没有有趣的事件参数,e 应该是 EventArgs.Empty,而不是 null。
我遵循了我的代码中的指导,但我意识到我不清楚为什么这是首选技术。为什么规定的契约(Contract)更喜欢 EventArgs.Empty 而不是 null?
最佳答案
我相信 NOT NULL 背后的原因是当作为参数传递时,该方法不需要潜在地处理空引用异常。
如果您传递 null,并且该方法尝试使用 e 执行某些操作,它将获得空引用异常,而使用 EventArgs.Empty 则不会。
关于c# - 为什么使用 EventArgs.Empty 而不是 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/188692/