Явный аргумент типа в C#
Явный аргумент типа - это конкретный тип в угловых
скобках сразу после имени метода. Если компилятор и так
видит один T, скобки опускают. Их пишут, когда из
вызова этот тип не получается.
Так бывает, если у вызова нет аргументов. Компилятор не видит, чем заменить T, и вызов без скобок не компилируется. В скобках пишут int - метод возвращает список чисел:
static List<T> MakeList<T>() => new List<T>();
List<int> nums = MakeList<int>();
nums.Add(7);
Console.WriteLine(nums[0]);
Скобки пишут и когда аргументы разного типа. Из числа и строки один T не получается, вызов без скобок не компилируется. Если в скобках указать object, число и строка оба подходят под него, а метод возвращает первый аргумент:
static T First<T>(T a, T b) => a;
object value = First<object>(4, "ab");
Console.WriteLine(value);
Дан код:
static List<T> Empty<T>() => new List<T>();
Вызовите метод с явным аргументом типа для строк, добавьте в список слово "beta" и выведите первый элемент.