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

时间:2017-05-24 02:44:45

标签: c# visual-studio oop object nullreferenceexception

  • 我有一个名为Game的公共类是静态的。

  • 在课堂上,我有两个私人指针变量卡和手[]。

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

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

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];
   }
}

`

2 个答案:

答案 0 :(得分:4)

首先,您的代码无法编译,因为您可以使用静态方法,其名称与封闭类型相同。

但是我们假设您正在尝试使用静态构造函数。如果是,则表示方法级变量为cardhands。如果要使用类成员字段,则在分配变量时只是不包括类型。例如:

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

答案 1 :(得分:1)

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

更改

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

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