Код: Выделить всё
string[] words = { "apple", "strawberry", "grape" }; // legal
string[] words = new string[]{ "apple", "strawberry", "grape" }; // legal
var words = new []{ "apple", "strawberry", "grape" }; // legal
var words = new string[]{ "apple", "strawberry", "grape" }; // legal
var words = { "apple", "strawberry", "grape", "peach" }; // ILLEGAL
Код: Выделить всё
var number = 10;
var text = "Hello";
CS0820: невозможно назначить инициализатор массива неявно типизированному локальному объекту
Обновление: я скомпилировал программу, используя четыре допустимых метода объявления массивов, и он генерирует тот же IL: http://pastebin.com/28JDAFbL
Это только усиливает мое замешательство. И фраза «это так, потому что так сказано в спецификации» мало чем поможет. Почему спецификация такая? В чем здесь причина?
Подробнее здесь: https://stackoverflow.com/questions/735 ... d-variable