Буду признателен за помощь в понимании того, почему следующий код C# не работает.
//string[] array = new string[] { "a", "b", "c", "d" }; // this array works
var array = new [] {
new DateTime(2000, 1, 1),
new DateTime(2010, 12, 31)
};
var format = "{0:MMM}{1:MMM}";
Console.WriteLine(string.Format(format, array)); // compiles, but crashes at runtime
Компилируется без проблем, но при выполнении вылетает со следующей ошибкой:
Исключение во время выполнения (строка 15): индекс (на основе нуля) должен быть больше или равен нулю и меньше размера списка аргументов.
Трассировка стека: [ System.FormatException: индекс (на основе нуля) должен быть больше или равен нулю и меньше размера списка аргументов.] В System.Text.StringBuilder.AppendFormatHelper (поставщик IFormatProvider, формат String, аргументы ParamsArray) в System.String .FormatHelper (поставщик IFormatProvider, формат String, аргументы ParamsArray) в System.String.Format (формат String, Object arg0) в Program.Main (): строка 15
Я ожидал, что Перегрузка String.Format, которая принимает массив объектов , будет работать с массивом DateTime так же, как он работает с массивом строк, но я что-то неправильно понимаю? * 101 6 *