46233

Шаблоны типа

Доклад

Информатика, кибернетика и программирование

Шаблоны предназначены для кодирования обобщённых алгоритмов без привязки к типам данных. Пример: Необходимо реализовать функцию выполняющую вычисление формулы

Русский

2013-11-20

14.38 KB

0 чел.

Шаблоны типа

Обобщённое программирование —такое описание данных и алгоритмов, которое можно применять к различным типам данных, не меняя само это описание.

Одним из механизмов обобщенного программирования являются шаблоны.

Шаблоны предназначены для кодирования обобщённых алгоритмов, без привязки к типам данных.

Пример: Необходимо реализовать функцию, выполняющую вычисление формулы

2*x + (x*x + 1)/(2*x)

Шаблоны типа

double F(double x) {

 double x2 = 2*x;

 return x2 + (x*x + 1)/x2;

}

int F(int x) {

 int x2 = 2*x;

 return x2 + (x*x + 1)/x2;

}

Для каждого нового типа данных,  участвующего в вычислении выражения,  придется создавать новую функцию F. Вместо этого можно прописать всего один шаблон функции.

Шаблоны типа для C#

Для описания простейшего шаблона достаточно перечислить идентификаторы  типов в угловых скобках после имени  класса или метода:

class Example<T> { /*…*/ }

Шаблон типа:

// Двусвязный список.

public class LinkedList<T> {

 // Узел списка.

 class Node {

   public T data;      // Данные.

   public Node next;    // Cледующий узел.

   public Node prev;    // Предыдущий узел.

 };

Node first;    // Первый узел списка.

 Node last;    // Последний узел списка.

Тип Pair должен иметь корректную реализацию метода ToString для вывода его содержимого в терминал. Тип Pair примет следующий вид:

 struct Pair {

   int x, y;

   public Pair(int x, int y) {

     this.x = x;

     this.y = y;

   }

public override string ToString() {

     return "(" + x + ", " + y + ")";

   }

 }

Ограничения шаблонов типа в C#

Ключевое слово where. Предложение where используется в определении универсального типа для указания ограничений типов, которые могут использоваться в качестве аргументов параметра типа, определенного в универсальном объявлении.

Существуют следующие варианты ограничений:

Ограничения шаблонов типа в C#

Ключевое слово where

• where T: struct

Аргумент типа должен иметь тип значения. Допускается указание любого типа значения, кроме Nullable

• where T : class

Аргумент типа должен иметь ссылочный тип; это также распространяется на тип любого класса, интерфейса, делегата или массива.

• where T : new()

Аргумент типа должен иметь открытый конструктор без параметров. При использовании с другими ограничениями ограничение new()должно устанавливаться последним.

• where T : <base class name>

Аргумент типа должен являться или быть производным от указанного базового класса.

• where T : <interface name>

Аргумент типа должен являться или реализовывать указанный интерфейс. Можно установить несколько ограничений интерфейса. Ограничивающий интерфейс также может быть универсальным.

• where T : U

Аргумент типа, предоставляемый в качестве T, должен совпадать с аргументом, предоставляемым в качестве U, или быть производным от него.

Например:

В качестве аргумента шаблона LinkedList могут выступать только классы, наследующие от System.IDisposable.


 

А также другие работы, которые могут Вас заинтересовать

47591. МОЖНА ВСЕ НА СВІТІ ВИБИРАТИ, СИНУ, ВИБРАТИ НЕ МОЖНА ТІЛЬКИ БАТЬКІВЩИНУ 127.5 KB
  ПОСЛІДОВНІСТЬ ВИКОНАННЯ ПРОЕКТУ МОЖНА ВСЕ НА СВІТІ ВИБИРАТИ СИНУ ВИБРАТИ НЕ МОЖНА ТІЛЬКИ БАТЬКІВЩИНУ ДАТА ТЕМА ЗАХОДІВ МЕТА ЗАХОДІВ ВИД ДІЯЛЬНОСТІ 1 вересня Перший урок Україна – наш спільний дім Жовтень Ой роде наш красний роде наш прекрасний 9 листопада До Дня слов’янської писемності та мови Вчімося друзі слово любити Презентація командне змагання 19 грудня Святий Миколай до нас завітай міцного здоров’я на весь рік дай Театральне дійство 25 грудня Запрошення на Андріївські вечорниці Фестиваль української культури 21 січня...
47592. Проектування лінійних споруд волоконно-оптичних ліній зв’язку.Методичний посібник 2.43 MB
  Прокладання кабелю. Вибір марки кабелю та визначення його придатності. Конструктивний розрахунок оптичного кабелю та визначення його конструкції 19 5.4 Вибір оптичних волокон оптичного кабелю та розрахунок максимальної довжини регенераційної ділянки 22 5.
47593. Rational Unified Process 4.13 MB
  Планирование итеративного проекта Технологические процессы 101 7 Технологический процесс управления проектом 103 Цель 103 Планирование итеративного проекта 104 Понятие риска 106 Понятие метрики 108 Что такое метрика 109 Исполнители и артефакты 110 Технологический процесс 111 Создание плана итерации 119 8 Технологический процесс моделирования производства 124 Цель 124 Зачем моделировать производство 124 Использование методов программотехники в процессе. Основные задачи книги Благодаря этой книге вы узнаете чем является Rtionl Unified...
47594. Фізіологія і патологія статевого формування. Диференційний діагноз різних форм статевого формування. Принципи лікування. Методичні вказівки 112.5 KB
  ДИФЕРЕНЦІЙНИЙ ДІАГНОЗ РІЗНИХ ФОРМ СТАТЕВОГО ФОРМУВАННЯ. Методичні вказівки для студентів та лікарівінтернів Затверджено вченою радою ХДМУ Протокол № Харків ХДМУ Фізіологія і патологія статевого формування. Диференційний діагноз різних форм статевого формування.
47595. СЛОВНИК СТРАХОВИХ ТЕРМІНІВ 283.5 KB
  АВІАЦІЙНЕ СТРАХУВАННЯ (aviation insurance) - страхування ризиків, пов'язаних із використанням авіаційної та космічної техніки. Іноді страхування космічних ризиків виділяється в окремий вид. А. с. охоплює страхування літаків, вертольотів та іншої авіаційної техніки від пошкодження й знищення; страхування відповідальності перед пасажирами й третіми
47596. ФІНАНСИ ПІДПРИЄМСТВ 417.5 KB
  Виручку від реалізації продукції робіт і послуг; 3. Фінансово розрахункові відносини на 1 стадії кругообігу капіталу виникають: 1 при закупівлі товарноматеріальних цінностей для здійснення процесу виробництва продукції виконання робіт надання послуг; 2 при розрахунках з покупцями при реалізації продукції робіт послуг; 3 при розподілі новоствореної вартості; 4 при розрахунках: з працівниками за участь в процесі виробництва продукції виконання робіт надання послуг з соціальними фондами по нарахуваннях і перерахуваннях внесків...
47597. Страхування. Термінологічна шпаргалка 151.31 KB
  В залежності від способу споживання розрізняють страхові послуги які споживаються: Індивідуально В залежності від форми реалізації розрізняють страхові послуги які здійснюються в: Добровільній формі В якому випадку за договором індивідуального страхування від нещасних випадків розмір страхової виплати становить 100 страхової суми: У випадку смерті В якому порядку здійснюється сплата страхових внесків у разі страхування пасажирів від нещасних випадків на транспорті входять до вартості квитка Взаємовідносини між страховиком і...
47598. МЕТОДИЧЕСКИЕ УКАЗАНИЯ. ИССЛЕДОВАНИЕ НАГРЕВА ОБРАЗЦА ПРИ ПОСТОЯННОЙ ТЕМПЕРАТУРЕ В ПЕЧИ 1.44 MB
  Теоретическая часть Дифференциальное уравнение теплопроводности устанавливает связь между временными и пространственными изменениями температуры тела и математически описывает перенос тепла внутри тела. чтобы решить дифференциальное уравнение надо знать условия однозначности которые включают: распределение температуры внутри тела в начальный момент времени начальное условие: Tr z0=fr z 2 fr z – известная функция. Граничные условия III рода состоят в задании температуры окружающей среды как функции времени: Tc=fτ...
47599. Сборник основных дат и событий школьного курса отечественной и зарубежной истории 563.5 KB
  В сборник включены все основные даты и события школьного курса отечественной и зарубежной истории с древнейших времен до начала XXI века. Сборник составлен с учетом действующих школьных учебников и предназначен для широкого использования.