2015-10-03 36 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您拯救我的夜生活! –