Исторически вам приходилось писать new
оператор. Как это:
string[] foo = new string[] {"Test"};
Я думаю, что в C # 2.0 стало возможным опустить оператор new
и написать просто:
* +1007 *
где компилятор может выяснить, что вы инициализируете массив. И я думаю, что согласен с вами, что это несоответствие. Когда была добавлена возможность опустить оператор new
, они, вероятно, забыли об операторе возврата, поскольку очень редко можно вернуть массив, который был инициализирован внутри оператора возврата. Потому что, когда компилятор смотрит на тип возвращаемого значения, он должен иметь возможность выяснить это так же, как и в случае присваивания.
Лично я никогда не опускаю оператор new
, поэтому я даже не думал об этом:)