Заключение выражения коллекции в круглые скобки меняет поведение инициализатора коллекции.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Заключение выражения коллекции в круглые скобки меняет поведение инициализатора коллекции.

Сообщение Anonymous »

В C# это выражение коллекции не компилируется с помощью инициализатора коллекции списка (на мой взгляд, все должно быть на месте, чтобы оно работало, но у разработчиков Roslyn должны быть свои причины):
var list = new List
{
[ 1, 2 ] // Compiler error CS1501
};
list.Add([1, 2]); // Compiles, though

Мой вопрос: почему это вдруг работает, когда выражение коллекции оборачивается другим выражением (путем заключения его в круглые скобки)? Потому что действительно это компилируется:
var list = new List
{
([ 1, 2 ]) // Works
};

Почему компилятор становится умнее, когда выражение коллекции помещается внутри дополнительного выражения? Это что-то вроде магического заклинания? Вероятно, нет, потому что здесь выражение коллекции не преобразуется автоматически в Array:
var arr = ([1, 2]); // Compiler error CS9176


Подробнее здесь: https://stackoverflow.com/questions/793 ... ection-ini
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»