请大虾指点我的事件触发为啥会出错呀?

zj369 2005-10-05 11:49:20
我定义了个类,然后在类中定义了个委托,又定义了个事件

public delegate void ParserErrorHandler(Object sender, TgParserErrorEventArgs e); //委托
public event ParserErrorHandler OnParserError; //事件

然后在类的某方法中触发事件:
TgParserErrorEventArgs e = new TgParserErrorEventArgs(strName,TgCommon.ErrNoFind);
OnParserError(this,e);

奇怪的当我的程序写事件处理程序就正常
this.t1.OnParserError += new TBA.ParserErrorHandler(this.t1_OnParserError);
如果不写上面这个当运行到类中触发事件的代码就会出错???
说未将对象引用设置到对象的实例,这是怎么回事情呀?

...全文
80 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
guyan033 2005-10-06
  • 打赏
  • 举报
回复
this.t1.OnParserError += new TBA.ParserErrorHandler(this.t1_OnParserError);
是必须有的,不然事件触发之后不 知道应该再作什么了
是否判断只是让程序变的不太脆弱
if(OnParserError != null)
{
OnParserError(this,e);
}
zhy0101 2005-10-05
  • 打赏
  • 举报
回复
楼上正解。如果不检查,委托链是空的,当然会无对象实例。
暗石绿 2005-10-05
  • 打赏
  • 举报
回复
判断一下。
if(OnParserError != null)
{
OnParserError(this,e);
}
turenjie 2005-10-05
  • 打赏
  • 举报
回复
up

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧