为什么"公共事件EventHandler cccc"为空?
我有一堂课
public class Builder
{
public event EventHandler StartedWorking;
public Builder()
{
// Constructor does some stuff
}
public void Start()
{
StartedWorking(this, eventargobject); //StartedWorking is null --
}
}
Run Code Online (Sandbox Code Playgroud)
这看起来很简单,我一直在做什么?我错过了一些明显的东西,或者有什么东西可以导致这种情况?
编辑:
这是否意味着如果我在客户端类中触发未订阅的事件,我必须检查它是否为空?
EDIT 2:
我想我从未有过从未订阅的事件,因此从未遇到过这种情况 - 你每天都学到新东西对于看似愚蠢的问题抱歉....
Ree*_*sey 12
除非有人订阅了该事件,否则事件处理程序将为null.一旦委托订阅了该事件,它就不再是空的.
这就是为什么总是建议使用以下表格来举起活动:
public void Start()
{
var handler = this.StartedWorking;
if (handler != null)
{
handler(this, eventArgObject);
}
}
Run Code Online (Sandbox Code Playgroud)
如果没有订阅者,这可以保护您免受空异常的影响.
| 归档时间: |
|
| 查看次数: |
2160 次 |
| 最近记录: |