【发布时间】:2010-11-30 21:12:30
【问题描述】:
以下代码编译,但失败并显示NullReferenceException:
class Test
{
public Dictionary<string, string> Dictionary { get; set; }
}
static void Main(string[] args)
{
var x = new Test
{
Dictionary = // fails
{
{ "key", "value" }, { "key2", "value2" }
}
};
}
如果您将标记为“失败”的行替换为以下内容,则它可以正常工作(如预期的那样):
Dictionary = new Dictionary<string, string>
失败的语法是否有任何目的——它可以在其他情况下成功使用吗?或者这是编译器的疏忽?
【问题讨论】:
标签: c# compiler-construction syntax dictionary initializer