【问题标题】:C# Objects pointing to null even when instantiated?即使在实例化时,C# 对象也指向 null?
【发布时间】:2017-05-24 02:44:44
【问题描述】:
  • 我有一个名为 Game 的公共类,它是静态的。

  • 在类中我有两个私有指针变量cards和hands[]。

在类中,我还有一个静态 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];
   }
}

`

【问题讨论】:

  • 您正在定义隐藏字段的本地人 cardhands

标签: c# visual-studio oop object nullreferenceexception


【解决方案1】:

首先,您的代码将无法编译,因为您不能拥有名称与封闭类型相同的静态方法。

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

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

【讨论】:

    【解决方案2】:

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

    改变

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-08
      • 2012-04-26
      • 1970-01-01
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 2013-01-22
      • 1970-01-01
      相关资源
      最近更新 更多