日期:2014-05-19  浏览次数:20742 次

帮忙看看这个 引用为空 的异常
自己写的用户控件中   想让   Button_Click   就发出一个   ValueChanged   事件

public   delegate   void   ValueChanged(object   sender,   EventArgs   e);

public   event   ValueChanged   MyValueChanged;

private   void   button_Click(object   sender,   EventArgs   e)
{
        MyValueChanged(sender,   e);

}

为什么   在   MyValueChanged(sender,   e);   这里会抛出   引用为空   的异常

昨天程序运行还一切正常,刚才突然变成这个了

请教。

------解决方案--------------------
这种地方一般都写成这样的:
if(MyValueChanged!=null)
MyValueChanged(sender, e);
------解决方案--------------------
MyValueChanged(sender, e);产生空引用是因为没有其他委托加到这个事件中。
你需要先判断他不为空,才能去调用。
if(MyValueChanged != null)
MyValueChanged(sender, e);