2015-05-14 4 views
2

Я новый массив инициализируется, как показано ниже:строка инициализации массива

string[] someNames = new string[] { "John", "Bryan", "Annete", "Mathiew", "Joseph", "Donald", "Tom" }; 
string[] someNames = { "John", "Bryan", "Annete", "Mathiew", "Joseph", "Donald", "Tom" }; 

В чем разница? Оба дают тот же результат. Я подумал, что второй забросит ошибку. Почему обе работы и какая из них предпочтительнее или правильнее?

+0

Почему вы ожидаете ошибку во второй версии? –

+0

Хорошо, спасибо. Я не знал, как это можно сделать в обоих направлениях. Я могу удалить это сообщение, если его спросят. – ExpertLoser

ответ

4

В первом случае вы явно указываете тип элемента массива. Однако компилятор C# может определить тип элемента массива, проанализировав предоставленные вами данные. Второй пример показывает эту функцию.

Нет никакой разницы между двумя инициализаторами. Выберите один стиль и используйте его в своей базе кода для обеспечения последовательности.

0

Нет никакой реальной разницы. Оба работают, и оба дают вам то же самое. Я бы использовал последнее, потому что его меньше набирать и меньше смотреть. Простота - всегда плюс.

Что касается более глубокой причины, последний способ - это только первый, скрытый «синтаксическим сахаром». Когда скомпилировано, нет никакой разницы.

Смежные вопросы