Основное отличие между обобщёнными и необобщёнными типами в C# заключается в том, что обобщённые типы работают с параметризированным типом данных, а необобщённые — с типом System.Object, который является базовым для всех типов. 12
Некоторые преимущества обобщённых типов:
- Безопасность типов. 3 Обобщённые типы могут содержать только объекты указанного типа. 3
- Производительность. 3 Обобщённые контейнеры не страдают от проблем упаковки и распаковки при хранении типов значений. 3
- Сокращение потребности в специальных типах коллекций. 3 При создании обобщённого контейнера указывается «тип типа». 3
Некоторые недостатки необобщённых типов:
- Слабая типизация. 3 Необобщённые коллекции обычно являются слабо типизированными контейнерами. 3
- Необходимость в явном приведении типа. 1 При вытягивании данных из необобщённой коллекции нужно явно указывать приведение типа, иначе компилятор выдаст ошибку на этапе компиляции. 1