Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#对象即使在实例化时也指向null?_C#_Visual Studio_Oop_Object_Nullreferenceexception - Fatal编程技术网

C#对象即使在实例化时也指向null?

C#对象即使在实例化时也指向null?,c#,visual-studio,oop,object,nullreferenceexception,C#,Visual Studio,Oop,Object,Nullreferenceexception,我有一个叫做Game的公共类,它是静态的 在这个类中,我有两个私有指针变量card和hands[] 在这个类中,我还有一个静态game()方法,它实例化两个指针,将它们指向它们的类实例对象 问题:Visual Studio中的属性/指针显示绿色下划线,调试时表示对象为空。我不明白?` System.NullReferenceException:“对象引用未设置为对象的实例。” public static class Game { private static Card card;

我有一个叫做Game的公共类,它是静态的

  • 在这个类中,我有两个私有指针变量card和hands[]

  • 在这个类中,我还有一个静态game()方法,它实例化两个指针,将它们指向它们的类实例对象

    问题:Visual Studio中的属性/指针显示绿色下划线,调试时表示对象为空。我不明白?`

    System.NullReferenceException:“对象引用未设置为对象的实例。”

    public static class Game {
        private static Card card;
        private static Hand[] hands;
    
       public static void Game() {
    
           Card card = new Card(true);
           Hand[] hands = new Hand[2];
       }
    }
    

    `

    Card=…
    创建一个名为Card的局部变量。它对班级级别的“卡”没有任何作用

    改变

    Card card = new Card(true);
    Hand[] hands = new Hand[2];
    


    首先,您的代码不会编译,因为您不能有一个名称与封闭类型相同的静态方法

    但是让我们假设您正在尝试使用静态构造函数。如果是这样,则您正在声明
    card
    hands
    的方法级变量。如果希望使用类成员字段,那么在分配变量时就不包括类型。例如:

    static Game()
    {
        card = new Card(true);
        hands = new Hand[2];
    }
    

    您正在定义隐藏字段的本地人
    static Game()
    {
        card = new Card(true);
        hands = new Hand[2];
    }