对于此方法,必须使用对象引用

Ste*_*tef 0 c#

我是C#的新手.我想知道为什么我会因此而出错:

错误:对于此方法,需要对象引用(从德语消息翻译).有任何想法吗.对我来说似乎是对的.

namespace DNS
{

    public class Core
    {

        Dig dig;

        public Core()
        {
            dig = new Dig();
        }


        public static void startTest()
        {
            dig.myServer = "10.10.10.10"; <------ ERROR
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 8

您试图以dig静态方法访问实例字段,这是不可能的,因为您需要一个对象实例才能访问实例成员.

一种可能性是使该dig字段静态:

public class Core
{
    private static Dig dig = new Dig();

    public static void startTest()
    {
        dig.resolver.DnsServer = "10.10.10.10";
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

另一种可能性是制作startTest方法和实例方法:

public class Core
{
    private Dig dig;

    public Core()
    {
        dig = new Dig();
    }

    public void startTest()
    {
        dig.resolver.DnsServer = "10.10.10.10";
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

或另一种可能性是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";
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

这取决于您的实际设计要求.