0

我的示例代码:

public partial class Service1 : ServiceBase
{
    object a = new object ();

    static void methodA()
    {
        string[] tests = {"test1","test2","test3"}
        foreach(string test in tests)
        {
            a.SetValue(""); //object a cannot be seen
        }
    }
}

无法看到对象。如何在for循环中使用对象?

4

3 回答 3

6

你的方法是static。您不能从静态方法访问非静态字段。考虑您的方法(或变量)是否应该是静态的并且

  1. static用关键字声明你的变量
  2. 从方法声明中删除static关键字

这是静态的(C# 参考)

于 2012-09-13T02:27:12.457 回答
4

对象不是静态的,但方法是静态的。将声明更改为:

static Object a = new Object ();

它将可以从您的循环中访问。

您的另一个选择是使方法 not static。您选择哪种实际上取决于您想要哪种行为。

于 2012-09-13T02:26:59.063 回答
1

您的方法是静态的,这就是您无法访问该对象的原因。尝试使您的对象也静态。

于 2012-09-13T02:29:43.353 回答