Следующий код компилируется, но с ошибкой 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" }
}
};
}
Если вы замените строку с пометкой "fail" следующим образом, она работает (как и ожидалось):
Dictionary = new Dictionary<string, string>
Есть ли какая-либо цель синтаксиса неудачи - может ли он успешно использоваться в каком-либо другом случае? Или это недосмотр в компиляторе?