В С# я могу инициализировать список, используя следующий синтаксис.
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?
Обновление
Я знаю, как клише принять ответ Джона Скита. Но, пример со строками и ints является удивительным. Также очень полезной страницей MSDN является: