为什么变量触发器抛出异常?

时间:2015-01-20 13:26:45

标签: c# variables triggers

我坚持用触发器声明变量。只要变量的值发生变化并且触发机制应该改变另一个变量的值,就会触发此触发器。

下面的代码编译正常,但抛出 NullReferenceException screenshot after exception)。

file: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);
        }
    }
}

file: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";
        }
    }
}

1 个答案:

答案 0 :(得分:3)

这是因为当你在FormMain构造函数中时,静态变量Program.formMain尚未初始化,因为你正在创建你需要的FormMain对象初始化Program.formMain

直接更新labelUserName