我是C#的新手。我想知道为什么我会因此而出错:
错误:对于此方法,需要对象引用(从德语消息翻译)。有任何想法吗。对我来说似乎是对的。
namespace DNS
{
public class Core
{
Dig dig;
public Core()
{
dig = new Dig();
}
public static void startTest()
{
dig.myServer = "10.10.10.10"; <------ ERROR
答案 0 :(得分:8)
您正尝试以静态方法访问实例dig
字段,这是不可能的,因为您需要一个对象实例才能访问实例成员。
一种可能性是将dig
字段设为静态:
public class Core
{
private static Dig dig = new Dig();
public static void startTest()
{
dig.resolver.DnsServer = "10.10.10.10";
...
}
}
另一种可能性是制作startTest
方法和实例方法:
public class Core
{
private Dig dig;
public Core()
{
dig = new Dig();
}
public void startTest()
{
dig.resolver.DnsServer = "10.10.10.10";
...
}
}
或另一种可能性是在静态方法中创建Core
对象的实例:
public class Core
{
private Dig dig;
public Core()
{
dig = new Dig();
}
public static void startTest()
{
Core core = new Core();
core.dig.resolver.DnsServer = "10.10.10.10";
...
}
}
这取决于您的实际设计要求。
答案 1 :(得分:0)
在静态方法中声明并初始化Dig。
答案 2 :(得分:0)
您还可以使整个类保持静态。然后你的错误也消失了:
命名空间ADDNS {
public static class Core
{
Dig dig;
public static Core()
{
dig = new Dig();
}
public static void startTest()
{
dig.resolver.DnsServer = "10.10.10.10";// <------ ERROR
}
} }