我使用以下代码片段收到以下编译器错误:
非静态字段,方法或者需要对象引用 属性
第5行,
字段初始值设定项不能引用非静态字段,方法或 属性
在第{1>位checker
{1}}的第1行:
ThreadStart
有人可以解释为什么我会收到这些错误吗?
答案 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);
}