вид инициализации, больше похож на коллекцию фиксированного размера, но это просто выбор синтаксиса.

использовать синтаксис инициализации следующим образом:

var contacts = new ContactList
{
    { "Dan", "[email protected]" },
    { "Eric", "[email protected]" }
};

... я понимаю, что мойContactList типнеобходимо определитьAdd метод это занимает дваstring параметры:

public void Add(string name, string email);

Что меня смущает, так это то, что{ } синтаксис инициализатора кажется наиболее полезнымпри создании коллекций только для чтения или фиксированного размера, В конце концов, это должно имитировать синтаксис инициализации длямассив, правильно? (ОК, поэтому массивы не только для чтения; но онинаходятся фиксированный размер.) И, естественно, его можно использовать только тогда, когда содержимое коллекции известно (хотя бы количество элементов) во время компиляции.

Таким образом, почти кажется, что основное требование для использования этого синтаксиса инициализатора коллекции (наличиеAdd Метод и, следовательно, изменяемая коллекция) не соответствует типичному случаю, в котором он был бы наиболее полезным.

Я уверен, что я не задумывался об этом больше, чем команда разработчиков C #; просто кажется, что для этого синтаксиса могли существовать разные правила, которые лучше сочетались бы с его типичными сценариями использования.

Я здесь далеко от базы? Желание использовать{ } синтаксис для инициализации коллекций фиксированного размера не так часто, как я думаю? Какие еще факторы могли повлиять на формулировку требований к этому синтаксису, о которых я просто не думаю?

Ответы на вопрос(9)

Ваш ответ на вопрос