Несогласованность компиляции инициализатора словаря C#C#

Место общения программистов C#
Ответить
Anonymous
 Несогласованность компиляции инициализатора словаря C#

Сообщение Anonymous »

Следующий код компилируется, но завершается с ошибкой NullReferenceException:

Код: Выделить всё

class Test
{
public Dictionary Dictionary { get; set; }
}

static void Main(string[] args)
{
var x = new Test
{
Dictionary =   // fails
{
{ "key", "value" }, { "key2", "value2" }
}
};
}
Если вы замените строку с пометкой «не удалось» на следующую, это будет работать (как и ожидалось):

Код: Выделить всё

Dictionary = new Dictionary
Есть ли какая-то цель в неудачном синтаксисе — можно ли его успешно использовать в каком-то другом случае? Или это недоработка компилятора?

Подробнее здесь: https://stackoverflow.com/questions/146 ... onsistency
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»