次のコードはコンパイルされますが、次のエラーで失敗します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>
失敗した構文には何か目的がありますか? 他のケースで正常に使用できますか? それとも、これはコンパイラの見落としですか?