Sobes.tech
Junior
127
questionbank

Что такое обобщенные типы (Generic) в C#?

Answer from AI

sobes.tech AI

Обобщенные типы (Generic) в C# позволяют определять классы, структуры, интерфейсы, делегаты и методы с параметрами типов. Это предоставляет возможность повторного использования кода и повышения типовой безопасности.

Основные преимущества:

  • Повторное использование кода: Единый класс или метод может работать с различными типами данных без дублирования логики.
  • Типовая безопасность: Компилятор проверяет типы во время компиляции, предотвращая ошибки времени выполнения, связанные с несоответствием типов.
  • Производительность: Для значимых типов (struct) не происходит упаковки (boxing), что улучшает производительность по сравнению с использованием object.

Принципы работы:

  • Параметры типов: Определяются с использованием угловых скобок <T>, где T - это имя параметра типа. Можно использовать любое имя, ноT` является общепринятым.
  • Создание экземпляров: При создании экземпляра обобщенного типа необходимо указать конкретный тип данных для каждого параметра типа.
  • Ограничения (Constraints): Можно накладывать ограничения на параметры типов, указывая, какие возможности должны поддерживать типы (например, реализация интерфейса, базовый класс, отсутствие параметра конструктора).

Пример использования обобщенного класса List<T>:

// Создание списка целых чисел
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);

// Создание списка строк
List<string> names = new List<string>();
names.Add("Alice");
names.Add("Bob");