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); } } 如果没有订阅者,这可以保护您免受空异常的影响. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 33.Oracle杂记——Oracle常用动态视图v$sql
- 从Rails 3.0升级到Rails 3.2(Ruby 1.9.3 Passeng
- c – 是否可以在一行中初始化具有增加值的向量?
- c# – quartz.net中JobBuilder的Create方法中的类
- 关于xml学习(三)—— DOM4J解析
- postgresql – psql:FATAL:Ident验证失败的用户
- 我可以更快地制作这个Ruby代码和/或使用更少的内
- 在ext开发中遇到ext弹出窗口被FlexPaper遮住问题
- C++ set_union(STL set_union)算法详解
- Swift NSMutableData附加Byte
热点阅读