Главная · Карта сайта · Поиск · Статьи · Компьютерные курсы · Обучающие программы · Открытые проекты · Веб-программирование · Создание интернет-сайта · Полезные ссылки · Глоссарий · Контакты · Декабрь 06 2016 22:51:35
Последнее опубликованное

Что такое Model-View-Controller
Pattern Model-View-Controller

Как создать свой веб-сайт
Как создать свой сайт в интернете

Разное
Статистика

Программирование на C#. Универсальные типы (заключение)


[Назад] [Делегаты и события]

3.4. Вместо эпилога

В следующем разделе продолжим рассматривать универсальные типы в контексте делегатов (аналог указателя на функцию в C++). Экземпляры делегатов чаще всего используют для передачи методов в качестве аргументов другим методам. Ну а с теми, кто утверждает, что шаблоны C++ "намного круче”, чем универсальные типы в C# все же придется частично согласиться, поскольку шаблоны C++ предоставляют некоторые возможности, которых нет в C#. Вот две наиболее существенные из них:

  1. В C# нет возможности создавать специализации универсального типа. Это относится и к полной и к частичной специализации.

    Специализация универсального типа (специализация шаблона) - это отдельная реализация универсального типа для конкретного набора типов-параметров, которая будет подменять основную функциональность универсального типа в случае совпадения типов-параметров создаваемого объекта с типами параметрами специализации.
    Другими словами, вы можете описать универсальный класс для сортировки последовательности элементов неопределенного типа и для нее же создать отдельную специализацию для сортировки только числовых значений. Компилятор будет поступать следующим образом: если создаются объекты с любым типом-параметром кроме числового, то реализация создается на основе шаблона путем подстановки значения типа-параметра. Если тип-параметр - целое число, то компилятор возьмет специально описанную вами специализацию, а шаблон проигнорирует.

  2. В C# тип-параметр не может быть типом базового класса для универсального типа, а значит конструкция вида

    class MyClass<T> : T {}

    запрещена.



[Назад]

Компьютерные курсы и курсы программирования
Основы программирования

Курс для начинающих программистов на C# и VB.NET.

SQL 25™

Построение SQL запросов и работа с базой данных.

C# Quick Guide™

Программирование на C#. Краткое руководство.

RegEx

Применение регулярных выражений.

Plug-in архитектура

Примеры программной Plug-in архитектуры.

XML и его расширения

Язык разметки XML и его расширения с примерами.

HTML и разметка гипертекста

Языки HTML, XHTML и CSS с примерами разметки.

Основы веб-дизайна

Основы веб-дизайна: решения типовых задач верстки.

Программирование на PHP

Руководство по программированию на PHP для начинающих.

Справочные материалы

Шаблоны проектирования
Каталог шаблонов проектирования программных компонентов.

Рефакторинг кода
Каталог приемов рефакторинга программного кода.

Гость
Имя

Пароль



Забыли пароль?
Запросите новый здесь
.
Coding Craft. Все права защищены © 2011. Проект Инициативного Народного Фронта Образования - ИНФО-проект.