Из MSDN
Статический конструктор используется для инициализации любых статических данных или для выполнения определенного действия, которое необходимо выполнить только один раз. Он вызывается автоматически перед созданием первого экземпляра или обращением к любым статическим элементам.
Теперь пришел к моей проблеме:
public static class DateFormat
{
private static List<string> DateFormats = new List<string>();
public static string DateSeparator { get; set; } = "/";
public static string Current { get; set; } = DateFormats[1]; // error here
static DateFormat()
{
DateFormats.Add("yyyy{0}MM{0}dd HH{1}mm{1}ss");
DateFormats.Add("yyyy{0}MM{0}dd hh{1}mm{1}ss");
}
}
Как вы видите выше, при вызове DateFormats[1]
ошибка
Инициализатор типа для DateFormat вызвал исключение.
Должен ли конструктор сначала вызывать статический конструктор? так что словарь будет заполнен, тогда любой вызов переменной, которая его использует, будет в порядке.