我被困在使用触发器声明变量。每当变量的值更改并且触发机制应更改另一个变量的值时,都会触发此触发器。
下面的代码可以正常编译,但是会抛出NullReferenceException(exception之后的屏幕截图)。
文件:Program.cs
using System;
using System.Windows.Forms;
namespace test {
class Program {
public static Active active = new Active();
public static FormMain formMain = new FormMain();
[STAThread]
static void Main() {
Application.Run(formMain);
}
}
}
档案:DataStruct.cs
namespace test {
public class Active {
public string UserName {
get {
return (Program.formMain.labelUserName.Text);
}
set {
Program.formMain.labelUserName.Text = value;
}
}
}
}
文件FormMain.cs
using System;
using System.Windows.Forms;
namespace test {
class FormMain : Form {
public Label labelUserName = new Label();
public FormMain() {
this.Controls.Add(labelUserName);
Program.active.UserName = "User Name";
}
}
}
这是因为当您在FormMain
构造函数中时,静态变量Program.formMain
尚未初始化,因为您正在创建FormMain
要初始化的对象Program.formMain
。
labelUserName
直接更新。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句