Следующая декларация приводит к ошибке:
private static IDictionary<int, string> Dic = new Dictionary<int, string>();
Пока нет:
private static IDictionary<int, string> Dic;
Что за ...?Я знаю, что могу инициализировать словарь в статическом конструкторе, но я действительно хочу использовать буквальный инициализатор (та же проблема).
Редактировать : Похоже, проблема связана сстатический конструкторЕсли я объявляю статический конструктор, я получаю ту же ошибку.Без сомнения, инициализируя поле, компилятор генерирует статический конструктор по умолчанию.Части нашего приложения используют отражение, чтобы выбрать класс для создания экземпляра - я думаю, что он может быть запутан статическим методом конструктора.
Фактически, я могу добавить любое статическое поле (static int i = 0;
) с инициализатороми получить те же результаты.Это на самом деле связано с архитектурой всего нашего приложения.Я иду другим путем с этим.Спасибо за все Ваши ответы.