C# 如何为IDictionary创建实例<;int,string>;?
我的模型是C# 如何为IDictionary创建实例<;int,string>;?,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我的模型是 public IDictionary<int, string> QuestionSetList { get; set; } 请告诉我如何解决这个问题。您不能实例化接口,因为接口只是一个合同。它没有任何实现 您需要实例化一个实现接口的类型。在这种情况下,您可以使用实现IDictionary的字典,您必须实例化保存字典的变量。这就是为什么会出现NullReferenceException 试试下面的方法 private IDictionary<int, string&
public IDictionary<int, string> QuestionSetList { get; set; }
请告诉我如何解决这个问题。您不能实例化接口,因为接口只是一个合同。它没有任何实现
您需要实例化一个实现接口的类型。在这种情况下,您可以使用实现
IDictionary
的字典,您必须实例化保存字典的变量。这就是为什么会出现NullReferenceException
试试下面的方法
private IDictionary<int, string> _questionSetList;
public IDictionary<int, string> QuestionSetList
{
get
{
if (_questionSetList == null)
{
_questionSetList = Dictionary<int, string>();
}
return _questionSetList;
}
set
{
_questionSetList = value;
}
}
privateidictionary\u问题集列表;
公共词典问题集列表
{
收到
{
如果(_questionSetList==null)
{
_questionSetList=字典();
}
返回问题集列表;
}
设置
{
_问题集列表=值;
}
}
可能说明了显而易见的问题,但它们是模型
,问题集列表
,问题集否
或问题集主题
空?问题集否显然不会为空,因为它是不可空的类型。请编辑您的答案,解释答案中的代码说明了什么。转储代码可能对OP现在有所帮助,但他们和未来的访问者都不会从复制粘贴代码中学到任何东西。@user743414这不是重点。一个好的答案不一定需要提供有效的代码,但它绝对需要从概念上解释什么被破坏了。当通过getter访问时,该代码从不抛出NullReferenceException。
private IDictionary<int, string> _questionSetList;
public IDictionary<int, string> QuestionSetList
{
get
{
if (_questionSetList == null)
{
_questionSetList = Dictionary<int, string>();
}
return _questionSetList;
}
set
{
_questionSetList = value;
}
}