提问人:Shaz 提问时间:5/24/2017 更新时间:5/24/2017 访问量:680
C# 对象即使在实例化时也指向 null?
C# Objects pointing to null even when instantiated?
问:
我有一个名为 Game 的公共类,它是静态的。
在类中,我有两个私有指针变量 cards 和 hands[]。
在类中,我还有一个静态 game() 方法,用于实例化两个指针以将它们指向它们的类实例对象。
问题:属性/指针在 Visual Studios 中显示绿色下划线,调试时显示对象为 null。我不明白?`
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];
}
}
`
答:
1赞
ProgrammingLlama
5/24/2017
#1
Card card = ...
创建一个名为 card 的局部变量。它不会对类级“卡”执行任何操作。
改变
Card card = new Card(true);
Hand[] hands = new Hand[2];
自
card = new Card(true);
hands = new Hand[2];
4赞
John Koerner
5/24/2017
#2
首先,您的代码将无法编译,因为您不能有一个名称与封闭类型相同的静态方法。
但是,假设您正在尝试使用静态构造函数。如果是这样,则声明 和 的方法级变量。如果要使用类成员字段,则在分配变量时只需不包含类型即可。例如:card
hands
static Game()
{
card = new Card(true);
hands = new Hand[2];
}
评论
card
hands