c# - 类属性中的字典有什么问题?

标签 c# .net .net-3.5 .net-4.0

为什么这段代码不起作用?

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");
    }   
}

错误: System.NullReferenceException 未处理 Message=对象引用未设置为对象的实例。

最佳答案

您尚未初始化该属性,因此 a.dic 的值为 null(任何引用类型的默认值)。

你需要这样的东西:

a.dic = new Dictionary<int, string>();

...或者您可以在构造函数中对其进行初始化。

另一方面,直接访问类的内部工作很少是个好主意——您基本上没有封装。

关于c# - 类属性中的字典有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4110344/

相关文章:

c# - 如何在 C# 中追加 xml 文件?

c# - 具有相互身份验证的服务客户端(2 向客户端证书身份验证)

.net - 垃圾收集器如何判断一个对象是否是垃圾?

c# - 根据前缀将整数字符串解析为十进制、八进制或十六进制

c# - ClickOnce:此计算机上未安装所需版本的 .NET Framework

.net - 在键/值集合中使用 List<T> 的最佳方法?

.net - 推荐.Net软实时

c# - 如何生成均匀分布的游戏对象并沿圆形路径移动它们?

c# - 图片框未更新其内容

c# - 使用 LINQ 将字符串转换为 int 以进行排序