В C # я могу инициализировать список, используя следующий синтаксис.
List<int> intList= new List<int>() { 1, 2, 3 };
Я хотел бы знать, как работает этот синтаксис {}
и есть ли у него имя. Есть конструктор, который принимает IEnumerable
, это можно назвать.
List<int> intList= new List<int>(new int[]{ 1, 2, 3 });
Это кажется более "стандартным". Когда я деконструирую конструктор по умолчанию для списка, я вижу только
this._items = Array.Empty;
Я бы хотел это сделать.
CustomClass abc = new CustomClass() {1, 2, 3};
И сможете использовать список 1, 2, 3
. Как это работает?
Обновление
Джон Скит ответил
Это вызывает без параметров
конструктор, а затем вызвать Add:
> List<int> tmp = new List<int>();
> tmp.Add(1); tmp.Add(2); tmp.Add(3);
> List<int> intList = tmp;
Я понимаю, что делает. Я хочу знать как. Как этот синтаксис узнает, как вызвать метод Add?
Обновление
Я знаю, как клише, чтобы принять ответ Джона Скита. Но пример со строками и целыми числами потрясающий. Также очень полезная страница MSDN: