我是C#的新手。我想知道为什么我会为此出错:
错误:对于此方法,需要一个对象引用(从德语消息翻译而来)。任何想法。对我来说似乎是正确的。
namespace DNS
{
public class Core
{
Dig dig;
public Core()
{
dig = new Dig();
}
public static void startTest()
{
dig.myServer = "10.10.10.10"; <------ ERROR
您正试图以静态方法访问实例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";
...
}
}
这将取决于您的实际设计要求。
在静态方法内部声明并初始化Dig。
您也可以使整个类成为静态的。然后你的错误也消失了:
命名空间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
}
}}