Книга: C# 4.0: полное руководство
Что такое обобщения
Что такое обобщения
Термин обобщение, по существу, означает параметризированный тип. Особая роль параметризированных типов состоит в том, что они позволяют создавать классы, структуры, интерфейсы, методы и делегаты, в которых обрабатываемые данные указываются в виде параметра. С помощью обобщений можно, например, создать единый класс, который автоматически становится пригодным для обработки разнотипных данных. Класс, структура, интерфейс, метод или делегат, оперирующий параметри-зированным типом данных, называется обобщенным, как, например, обобщенный класс или обобщенный метод.
Следует особо подчеркнуть, что в C# всегда имелась возможность создавать обобщенный код, оперируя ссылками типа object
. А поскольку класс object
является базовым для всех остальных классов, то по ссылке типа object
можно обращаться к объекту любого типа. Таким образом, до появления обобщений для оперирования разнотипными объектами в программах служил обобщенный код, в котором для этой цели использовались ссылки типа object
.
Но дело в том, что в таком коде трудно было соблюсти типовую безопасность, поскольку для преобразования типа object
в конкретный тип данных требовалось приведение типов. А это служило потенциальным источником ошибок из-за того, что приведение типов могло быть неумышленно выполнено неверно. Это затруднение позволяют преодолеть обобщения, обеспечивая типовую безопасность, которой раньше так недоставало. Кроме того, обобщения упрощают весь процесс, поскольку исключают необходимость выполнять приведение типов для преобразования объекта или другого типа обрабатываемых данных. Таким образом, обобщения расширяют возможности повторного использования кода и позволяют делать это надежно и просто.
---------------------------------
ПРИМЕЧАНИЕ
Программирующим на C++ и Java необходимо иметь в виду, что обобщения в C# не следует путать с шаблонами в C++ и обобщениями в Java, поскольку это разные, хотя и похожие средства. В действительности между этими тремя подходами к реализации обобщений существуют коренные различия. Если вы имеете некоторый опыт программирования на C++ или Java, то постарайтесь на основании этого опыта не делать никаких далеко идущих выводов о том, как обобщения'действуют в С#.
---------------------------------
- Что такое обобщения
- Простой пример обобщений
- Обобщенный класс с двумя параметрами типа
- Общая форма обобщенного класса
- Получение значения, присваиваемого параметру типа по умолчанию
- Обобщенные структуры
- Создание обобщенного метода
- Обобщенные делегаты
- Обобщенные интерфейсы
- Сравнение экземпляров параметра типа
- Иерархии обобщенных классов
- Переопределение виртуальных методов в обобщенном классе
- Перегрузка методов с несколькими параметрами типа
- Ковариантность и контравариантность в параметрах обобщенного типа
- Создание экземпляров объектов обобщенных типов
- Некоторые ограничения, присущие обобщениям
- Заключительные соображения относительно обобщений
- 1.1.1. Что такое объект
- Что делать
- Что делать, если при установке принтера появляется сообщение Невозможно завершение операции. Подсистема печати недоступн...
- Что дает грамотная должностная инструкция
- Как сделать, чтобы компьютер выключался
- ПОМОГАЙТЕ ДРУГИМ ПРИДЕРЖИВАТЬСЯ ПОЧТОВОГО «ЭТИКЕТА»
- Предисловие Кое-что новенькое – поговорим напрямую
- На что обращать внимание
- Что такое продажа?
- 1.5. Потренируйте свою интуицию: что следует запомнить
- Что происходит, когда бренды растут или идут на спад
- Почтовый клиент