对代表们来说还不错,所以不确定如何解决此问题,我也不知道如何形容...
1,这是我的代码
我尝试更改代码的顺序,设置== null(这显然没有用),我用Google搜索了此问题,根本找不到任何帮助...
namespace Thing
{
public class OtherThing
{
public delegate void TextChangedEventHandler(object source, EventArgs args);
public event TextChangedEventHandler TextHasChanged;
public String BDIFormcsLabelText;
public String TEXT
{
get
{
return BDIFormcsLabelText;
}
set
{
BDIFormcsLabelText = value;
OnTextHasChanged();
}
}
protected virtual void OnTextHasChanged()
{
if (TextHasChanged != null) // <---- THIS IS NULL
{
TextHasChanged(this, EventArgs.Empty);
}
}
}
}
我试图获取它以检测变量BDIFormcsLabelText中的更改,然后触发一个事件。更改中的检测工作正常,它可以触发不必要的...它调用“ OnTextHasChanged”事件处理程序,但是代码中标记为null的内容为null,我似乎无法弄清楚。它会抛出错误
“ System.NullReferenceException:'对象引用未设置为 对象的实例。'“
我对此不太了解,无法进一步解释。我只知道那是什么阻止我的活动订阅者执行那里的代码。如果有人可以帮助我解决此问题,则谢谢您
事件代码的订阅者如下
Thing thing = new Thing();
public void BDIFormcs_Load(object sender, EventArgs e)
{
thing.BDIFormcsLabelText = label1.Text;
thing.TextHasChanged += OnTextHasChanged;
}
public void OnTextHasChanged(object source, EventArgs e)
{
label1.Text = thing.BDIFormcsLabelText;
}