非静态字段,方法或属性需要对象引用

时间:2011-11-24 07:15:45

标签: c# oop

我使用以下代码片段收到以下编译器错误:

  

非静态字段,方法或者需要对象引用   属性

第5行,

  

字段初始值设定项不能引用非静态字段,方法或   属性

在第{1>位checker {1}}的第1行:

ThreadStart

有人可以解释为什么我会收到这些错误吗?

1 个答案:

答案 0 :(得分:2)

在您的第一个代码段中,我假设Label1是类的名称,而不是变量的名称。您需要实例化该类的对象。然后,您可以将该对象传递给LabelWrite()方法

public static void checker()
{
    Label1 label = new Label1();
    if (CheckServerState()) LabelWrite(true, label);
    else LabelWrite(false,label);
}

第二个编译器错误意味着当您在字段初始值设定项中将新的Thread对象分配给checker()时,无法引用方法tC

您需要在构造函数中执行此操作:

public Thread tC;

public MyClass()
{
    tC = new Thread(new ThreadStart(checker));

}

public void checker()
{
    if (CheckServerState()) LabelWrite(true, Label1);
    else LabelWrite(false,Label1);
}