您已将该属性设置为私有。如果你想他们是公众的尝试:
public List<GeoInfo> GeoInfos { get; set; }
本地存储的对象将是私人的自动实现的价值;但属性本身是公开的。
因为你声明的是属性存取器。
如果你想明确地写了一切,你能做到这一点的老预3.0方式
private List<GeoInfo> geoInfos = new List<GeoInfo>;
public List<GeoInfo> GeoInfos {
get { return geoInfos; }
set { geoInfos = value; }
}
这仍然依靠geoInfos初始化某处(如构造函数) - 或nullPointerException
将返回。
您可以直接在吸气做懒评价它:
private List<GeoInfo> geoInfos = new List<GeoInfo>;
public List<GeoInfo> GeoInfos {
get { if (geoInfos == null) {
geoInfos = new List<GeoInfo>;
}
return geoInfos;
}
set { geoInfos = value; }
}
这可以确保你没有指定在构造函数的调用,而不必担心执行顺序在获取它之前明确地设置元素。
但是,如果您使用自动生成的属性,您将不得不在某个点明确设置引用。如其他地方所建议的,最好的选择是构造函数。
是'UnhandledException'或'ArgumentNullException' - 请澄清。而且,这个代码本身并没有什么错误*我认为你将不得不添加更多的上下文;理想情况下是一个可重复的例子 – 2010-11-07 21:52:21
这条线本身看起来不错。你能发布更多的代码吗?这可能是其他原因造成的。 – eldarerathis 2010-11-07 21:52:42
请发布一个简短但完整的程序来演示问题。这很可能是简单的事情,但我们无法从这条线上看出来。 – 2010-11-07 21:54:39