Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpGcInr 44 of 509 menu
◀ ▶

Введение в обобщённые типы в C#

Обобщённый тип описывает класс или метод один раз и не закрепляет его за int, string или другим конкретным типом. На месте типа стоит параметр. Обычно его называют T. При использовании компилятор подставляет вместо T нужный тип и проверяет, что он везде один и тот же.

Так устроен список из основного учебника. List<int> хранит числа, List<string> - строки. Класс списка один, в угловых скобках указан тип элемента. Строку в список чисел положить нельзя: компилятор уже знает, какой тип там допустим.

Без такого параметра одну операцию копируют под каждый тип: отдельный метод для int, отдельный для double, отдельный для string. Правку потом вносят в каждую копию. Метод с параметром object копирование убирает, но тип проверяется только при запуске, когда значение приводят к нужному типу. Неподходящий аргумент компилятор пропускает.

Обобщение соединяет оба свойства. Объявление одно, как у метода с object, а тип проверяется при компиляции, как у отдельных копий. Для чисел параметр становится int, для строк - string.

Пока про T ничего больше не сказано, с ним можно только то, что верно для любого типа: сохранить значение, передать его дальше и вернуть из метода. Сложить два значения T или прочитать длину нельзя. У произвольного типа таких операций нет.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить