C# 非静态字段、方法或属性需要对象引用
以下代码片段导致以下编译器错误: 非静态字段、方法或对象需要对象引用 财产 在第5行中,以及 字段初始值设定项不能引用非静态字段、方法或 财产 在C# 非静态字段、方法或属性需要对象引用,c#,oop,C#,Oop,以下代码片段导致以下编译器错误: 非静态字段、方法或对象需要对象引用 财产 在第5行中,以及 字段初始值设定项不能引用非静态字段、方法或 财产 在ThreadStart中的checker处的第1行中: public Thread tC = new Thread(new ThreadStart(checker)); public static void checker() { if (CheckServerState()) LabelWrite(true, Label1); el
ThreadStart
中的checker
处的第1行中:
public Thread tC = new Thread(new ThreadStart(checker));
public static void checker()
{
if (CheckServerState()) LabelWrite(true, Label1);
else LabelWrite(false,Label1);
}
谁能解释一下我为什么会出现这些错误吗?在您的第一个代码片段中,我假定
Label1
是类的名称,而不是变量的名称。您需要实例化该类的对象。然后可以将该对象传递给LabelWrite()
方法
public static void checker()
{
Label1 label = new Label1();
if (CheckServerState()) LabelWrite(true, label);
else LabelWrite(false,label);
}
第二个编译器错误意味着在字段初始值设定项中将新线程对象分配给
tC
时,无法引用方法checker()
您需要在构造函数中执行此操作:
public Thread tC;
public MyClass()
{
tC = new Thread(new ThreadStart(checker));
}
public void checker()
{
if (CheckServerState()) LabelWrite(true, Label1);
else LabelWrite(false,Label1);
}