Читаю статью про делегаты. Вроде все понятно, но встретились обобщенные типы, с которыми до конца не разобралась. На интуитивном уровне понятны связи в коде, но...
delegate T Operation<T, K>(K val);
class Program
{
static void Main(string[] args)
{
Operation<decimal, int> op = Square;
Console.WriteLine(op(5));
Console.Read();
}
static decimal Square(int n)
{
return n * n;
}
}
Если озвучить конкретно строку:
delegate T Operation<T, K>(K val);
то получится что-то вроде: "Объявляем делегат с возвращаемым значением типа T, который называется Operation, а параметры делегата – это значение val типа К". Правильно? Куда прикрутить Operation в этой фразе. Что такое
<T, K>
? Ну, понятно, что оно указывает, какие типы используются в делегате Operate, но как это называется? Поясните русскими словами, пожалуйста.