【问题标题】:Can't Set variable value in Static Field无法在静态字段中设置变量值
【发布时间】:2015-10-03 00:01:12
【问题描述】:

在这个简单的例子中为什么Sample()函数中的StrA不能用“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());
}

【问题讨论】:

  • 你能发布你的课程吗?所有这些代码都在MyClass 类中吗?
  • MyClass 还包括另一个用于调用 Sample() 的事件按钮功能。

标签: c# static call


【解决方案1】:

使 StrA 成为静态字段,现在它只是实例的本地属性,所以当你创建一个新实例时 MyClass1 = new MyClass();

StrA 属性为空(null),即使您将其设置为一个值,在您创建一个新实例后,该新实例的 SrtA 也会为空...

【讨论】:

  • 啊哈!我现在明白为什么 SrtA 为空 tnx 但如果我不创建新实例,我会收到此错误:非静态字段、方法或属性“WindowsFormsApplication3.MyClass.StrA.get”需要对象引用
  • 尝试将其设为static string StrA { get; set; },每次使用时,将其用作静态成员:MyClass.StrA(不是 myclass1,而是类的名称)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-10
  • 1970-01-01
相关资源
最近更新 更多