Mar*_*lin 8 .net c# events delegates
有人可以解释为什么.Net框架团队决定没有订阅者的委托应该是null而不是具有空InvocationList的对象吗?我想知道导致这一决定的理由.
void DoSomething()
{
EventHandler handler = SomeEvent;
if(handler != null) //why is this null-check necessary?
{
handler(this, EventArgs.Empty);
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢
在CLR级别,委托字段和事件字段是常规字段.
就像string MyField
默认为null
,而不是""
,所以也Action MyField
默认null
,而不是一个空的Action
实例.
归档时间: |
|
查看次数: |
356 次 |
最近记录: |