+ -
当前位置:首页 → 问答吧 → 求助如何解决NULLReferenceException was unhandled

求助如何解决NULLReferenceException was unhandled

时间:2011-12-12

来源:互联网

我在mainpage类中这样“public void OverGame(Bomb bomb)”定义了一个overgame函数。
然后我在另一个类Bomb中写了这样的委托:
  public delegate void OverGameHandller(Bomb bomb);
  public OverGameHandller OverGame;
之后我就在Bomb类的一个函数中像OverGame(this);这样调用了overgame方法。
不知道为什么我这程序一跑就抛出想题目中所说的异常。

ps:我很奇怪
  public delegate void OverGameHandller(Bomb bomb);
  public OverGameHandller OverGame; 这两句话是干什么用的?定义委托吗?但是我在winForm中委托根本不是这样定义的,这是定义句柄吗?(从没定义过,不知道是不是)

作者: hegd1618007   发布时间: 2011-12-12

public delegate void OverGameHandller(Bomb bomb);声明一个委托类型,名字为OverGameHandller,

public OverGameHandller OverGame;定义一个委托(委托也是一种变量),变量名为OverGame,

定义完委托(变量)后,还有给他赋值,否则无法使用,

你没有赋值,当然出错了,如果你的OverGame是一个方法名,建议改名,不要和委托变量同名,否则你自己会搞混,

  public delegate void OverGameHandller(Bomb bomb);
  public OverGameHandller OverGameProc=null;

...

然后在适当时机初始化OverGameProc委托:

  OverGameProc=mainpage.OverGame;//mainpage是一个类名,我这里只是示意,你要找到正确的类名

....

然后调用的时候,谨慎一点,先判断:

  if (OverGameProc!=null)
  {
  OverGameProc(this);
  }

作者: stonespace   发布时间: 2011-12-12