Fre*_*ice 3 .net c# .net-4.0 .net-3.5
为什么这段代码不起作用?
public class A
{
public Dictionary<int, string> dic { get; set; }
}
class Program
{
public static void Main()
{
A a = new A();
a.dic.Add(1, "a");
}
}
Run Code Online (Sandbox Code Playgroud)
错误:System.NullReferenceException未处理Message = Object引用未设置为对象的实例.
您尚未初始化该属性,因此值为a.dicnull(任何引用类型的默认值).
你需要这样的东西:
a.dic = new Dictionary<int, string>();
Run Code Online (Sandbox Code Playgroud)
...或者你可以在构造函数中初始化它.
另一方面,直接访问类的内部工作并不是一个好主意 - 你基本上没有封装.