Sobes.tech
Junior
101
questionbank

Можно ли использовать более одного шаблонного типа в C#?

Ответ от нейросети

sobes.tech AI

Да, можно использовать несколько шаблонных типов в C#. Это позволяет создавать более гибкие generic-классы и методы.

// Пример generic-класса с двумя шаблонными типами
public class Pair<TKey, TValue>
{
    public TKey Key { get; set; }
    public TValue Value { get; set; }

    // Конструктор
    public Pair(TKey key, TValue value)
    {
        Key = key;
        Value = value;
    }
}

// Пример generic-метода с двумя шаблонными типами
public TResult Merge<TFirst, TSecond, TResult>(TFirst first, TSecond second, Func<TFirst, TSecond, TResult> merger)
{
    // Метод объединяет два значения с помощью предоставленной функции
    return merger(first, second);
}

В классе Pair<TKey, TValue> TKey и TValue являются независимыми шаблонными типами. Они могут быть представлены любыми типами данных при создании экземпляра класса.

В методе Merge<TFirst, TSecond, TResult> также используется три шаблонных типа: TFirst, TSecond и TResult. TResult определяет возвращаемый тип метода, а TFirst и TSecond – типы входных параметров.

Это фундаментальная возможность generics, широко используемая в .NET Framework и .NET Core для создания коллекций (например, Dictionary<TKey, TValue>), делегатов и других гибких структур.