2015-10-03 66 views
0

在這個簡單的示例中爲什麼StrASample()函數中無法用「Hi World」字符串進行設置?無法在靜態字段中設置變量值

string StrA { get; set; } 

private void button1(object sender, EventArgs e) 
{ 
    StrA = "Hi World"; //=======> Get StrA value 
} 


public static string Sample() 
{ 
    MyClass MyClass1 = new MyClass(); 

    string a = MyClass1.StrA; //==========> Can't Set StrA value with "Hi World" string ??? 

    return (MessageBox.Show(a).ToString()); 
} 
+0

你能後你有課嗎? 「MyClass」類中的所有代碼都是? – TheDude

+0

MyClass just還包含調用Sample()的另一個事件按鈕函數。 –

回答

0

使STRA靜態字段,現在它的實例只是一個局部性質,所以當你創建一個新實例 MyClass1的=新MyClass的();

的STRA屬性爲空(NULL),即使你設置一個值,你創建一個新的實例新的實例將作爲SRTA清空之後...

+0

ahaa!我現在得到爲什麼SrtA爲空tnx,但如果我不創建一個新的實例我得到這個錯誤:對象引用是非靜態字段,方法或屬性'WindowsFormsApplication3.MyClass.StrA.get'' –

+0

需要嘗試使它'靜態字符串StrA {get;組; }'並且每次使用它時,都使用它作爲靜態成員:'MyClass.StrA'(不是myclass1,但是類的名稱) – Ryu

+0

這麼多tnx您拯救我的夜生活! –