加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 为什么“公共事件EventHandler cccc”为空?

发布时间:2020-12-15 19:36:24 所属栏目:百科 来源:网络整理
导读:为什么“公共事件EventHandler cccc”为空? 我有一堂课 public class Builder{ public event EventHandler StartedWorking; public Builder() { // Constructor does some stuff } public void Start() { StartedWorking(this,eventargobject); //StartedWo
为什么“公共事件EventHandler cccc”为空?

我有一堂课

public class Builder
{
    public event EventHandler StartedWorking;

    public Builder()
    { 
        // Constructor does some stuff
    }

    public void Start()
    {
       StartedWorking(this,eventargobject); //StartedWorking is null --
    }
}

这看起来很简单,我一直在做什么?我错过了一些明显的东西,或者有什么东西可以导致这种情况?

编辑:

这是否意味着如果我在客户端类中触发未订阅的事件,我必须检查它是否为空?

EDIT 2:

我想我从未有过从未订阅的事件,因此从未遇到过 –
你每天学习新的东西
抱歉看似愚蠢的问题….

解决方法

除非有人订阅了该事件,否则事件处理程序将为null.一旦委托订阅了该事件,它就不再是空的.

这就是为什么总是建议使用以下表格来举起活动:

public void Start()
{
    var handler = this.StartedWorking;
    if (handler != null)
    {
         handler(this,eventArgObject);
    }
}

如果没有订阅者,这可以保护您免受空异常的影响.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读