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

时间:2012-02-26 20:05:07

标签: 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

3 个答案:

答案 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 
    }

} }