public class Aitken
{
private readonly List<double> X;
private readonly List<double> Y;
public Aitken()
{
List<double> X = new List<double>() { 0, 0.5, 0.75, 1.0 };
List<double> Y = new List<double>() { 1.0, 0.6065, 0.4724, 0.3679};
}
public void Print()
{
Console.WriteLine(X == null);
Console.WriteLine(Y == null);
}
}
这是我遇到问题的示例。我先说一下构造函数中的两个列表。如果我立即在构造函数中检查null引用异常,一切都很好。但是,当另一个方法调用列表时,它将引发空引用异常。它们都是成员变量,所以我不太了解为什么会发生这种情况。谢谢您的宝贵时间。
答案 0 :(得分:3)
在构造函数中,您没有分配给类的字段,而是在创建新的局部变量并对其进行初始化。
您应该删除List<double>
并执行以下操作:
X = new List<double>() { 0, 0.5, 0.75, 1.0 };
Y = new List<double>() { 1.0, 0.6065, 0.4724, 0.3679};
答案 1 :(得分:2)
您正在构造函数中创建新列表
将构造函数更改为此:
public Aitken()
{
X = new List<double>() { 0, 0.5, 0.75, 1.0 };
Y = new List<double>() { 1.0, 0.6065, 0.4724, 0.3679};
}
这会将列表分配给成员变量。
我建议您阅读C#中的可变作用域以充分了解您的问题:-)