Вы можете использовать тег для внешних URL-адресов,
<a href='https://domain.extension/external-without-params'>external</a>
, но также вы можете предоставить такой компонент:
<Route path='/external' component={() => { window.location = 'https://domain.extension/external-without-params'; return null;} }/>
Это называется коллекцией инициализатор . Он вызывает конструктор без параметров, а затем вызывает Add:
List<int> tmp = new List<int>();
tmp.Add(1);
tmp.Add(2);
tmp.Add(3);
List<int> intList = tmp;
Требования для типа:
IEnumerable
Add
, которые подходят для аргумента типы вы поставляете. На самом деле используется метод .Add
. Это означает, что он вызывает . Добавьте
для каждого элемента в скобках внутри конструктора.
Читать Инициализаторы объектов и коллекций (Руководство по программированию в C #) . По сути, это можно сделать с каждым пользовательским типом, являющимся списком (реализует IEnumerable).
Они называются инициализаторами коллекции (см. Также здесь ), и то, как они работают, заключается в поиске метода Add ()
, который может делать ставки. Он вызывает Add ()
для каждого целого числа, которое есть в ваших фигурных скобках.
Поиск метода Add ()
является чистой магией компилятора. Трудно найти метод с таким именем.
Имя, которое вы ищите - «Инициализатор коллекции». Он работает под капотом, ища метод с именем Add для типа коллекции и вызывая его для каждого указанного вами значения.
Подробнее: Инициализаторы объектов и коллекций (Руководство по программированию в C #)
Я считаю, что это ярлык для метода .Add. Я никогда не пытался переопределить это, поэтому я не знаю, возможно ли это.
Насколько я понимаю, добавление элементов с помощью инициализации объекта ищет метод Add. Итак, так как List
Чтобы использовать его в своем классе, просто добавьте
class CustomClass {
public void Add(int num) {
// Your code here
}
}
Ваш класс должен реализовывать IEnumerable, как указывал Халлгрим.