以下代码编译通过,但会出现“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" }
}
};
}
如果你用以下代码替换标记为'fails'的那行,它就可以正常工作:
Dictionary = new Dictionary<string, string>
这个失败的语法有什么目的吗?它在其他情况下可以成功使用吗?还是编译器的一个疏忽?
new
应该是一个红色提示.. 但我从未使用过这个语法,所以我太字面地理解了等于号操作符。 - Ben M