对于此方法,需要一个对象引用



我是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 
    }

}}

最新更新