[英]Why the variable trigger throws exception?
我被困在使用觸發器聲明變量。 只要變量的值發生更改並且觸發機制應該更改另一個變量的值,就會觸發此觸發器。
下面的代碼可以正常編譯,但會引發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
尚未初始化,因為您正在創建要初始化Program.formMain
的FormMain
對象。
labelUserName
直接更新labelUserName
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.