【问题标题】:Creating a property of Type Dictionary [closed]创建类型字典的属性[关闭]
【发布时间】:2012-09-20 19:41:13
【问题描述】:

为什么我不能这样做?

这是记录器类中的属性

public Dictionary<string, string> customProperties
        { get; set; }

这是界面中的属性...

 Dictionary<string, string> customProperties
        { get;  set; }

然后这样称呼它......

DatabaseLogger.ILogger logger = new DatabaseLogger.Logger();

logger.customProperties.Add("companyName", "Company");
logger.customProperties.Add("application", "application");

我收到了NullReferenceExcpetion - 我该如何避免呢?

【问题讨论】:

  • 是什么让你觉得你做不到?
  • 你绝对可以做到。您只需要先初始化您的字典对象。请参阅下面 Oded 的答案
  • 这里没有问题。只有没有有支持证据(错误消息、异常等)支持的声明
  • 对不起,第一句后面应该有一个问号。此外,我在输入错误之前保存了问题。我得到一个 Null ref 异常。下面的答案修复了它。

标签: c# dictionary


【解决方案1】:

唯一缺少的是属性的初始化——否则为null(这意味着在其上调用Add会抛出NullReferenceException)。

DatabaseLogger.ILogger logger = new DatabaseLogger.Logger();

logger.customProperties = new Dictionary<string, string>();
logger.customProperties.Add("companyName", "Company");
logger.customProperties.Add("application", "application");

虽然在Logger 构造函数中这样做可能会更好:

public Logger()
{
  customProperties = new Dictionary<string, string>();
}

【讨论】:

  • 直到我等了 4 分钟或类似的时间,它才会让我回答。
猜你喜欢
  • 2010-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 2017-01-08
  • 1970-01-01
  • 2022-06-22
相关资源
最近更新 更多