Следующий код компилируется, но завершается ошибкой с 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>
Есть ли какая-то цель в неудачном синтаксисе - можно ли его успешно использовать в каком-то другом случае? Или это недоработка компилятора?