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.


 

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

40727. Виды и формы предпринимательской деятельности 39 KB
  Рыночная экономика экономика свободного предпринимательства. В зависимости от содержания и направленности предпринимательской деятельности объекта приложения капитала и получения конкретных результатов связи предпринимательской деятельности с основными стадиями воспроизводственного процесса различают следующие виды предпринимательства: 1. Коммерческое торговое предпринимательство Принцип организации торгового предпринимательства несколько отличается от производственного так как предприниматель выступает непосредственно в роли...
40728. Государственное регулирование предпринимательской деятельности 28.5 KB
  Целью государственного регулирования предпринимательской деятельности является создание определенных условий обеспечивающих нормальное функционирование экономики в целом и стабильное участие предпринимателей страны в международном разделении труда и получение от этого оптимальных выгод. В обобщенном виде в задачи государственного регулирования входят: разработка принятие и контроль за законодательством обеспечивающим правовую основу и защиту интересов предпринимателей; повышение эффективности государственного регулирования и снижение...
40729. Малое предпринимательство, его фин-экон и организационные особенности 41.5 KB
  В современных условиях роль малого бизнеса в рыночной экономике растет. Функции малого бизнеса: Экономические функции малого бизнеса: Придает рыночной системе необходимую гибкость активизация структурных сдвигов процессов разгосударствления и приватизации. Социальные функции малого бизнеса: Обеспечивает рост занятости. Но все перечисленные достоинства малого бизнеса проявляются отнюдь не автоматически.
40730. Среднее и крупное предпринимательство 30.5 KB
  Формы взаимодействия малого среднего и крупного бизнеса в рамках сетевой экономики В современной развитой рыночной экономике малый бизнес оказывается подчинен крупному бизнесу через систему подрядов и субподрядов. Крупному бизнесу как правило обеспечивает гарантию возврата кредита и обеспечивает устойчивые долгосрочные отношения с подрядчиком или субподрядчиком . С помощью франчайзинга малый бизнес получает возможность стабилизировать внешнюю среду обеспечить конкурентные преимущества. Крупный бизнес расширяет сферу контроля над рынком и...
40731. Критерии выделения малого бизнеса в России 28.5 KB
  В реальный сектор экономики входят как отрасли материального производства так и сфера производства нематериальных форм богатства и услуг. В результате научнотехнической революции и роста производительности труда резко изменилось соотношение в нем между отраслями материального производства и сферой услуг. В индустриально развитых странах доля занятых в сфере услуг почти в два раза превышает эту долю в отраслях материального производства составляя более двух третей общей численности занятых. Информатизация экономики порождая дальнейшие...
40732. Формы финансовой поддержки малых предприятий 30 KB
  Государственная поддержка малого предпринимательства реализуется по следующим направлениям: формирование инфраструктуры поддержки и развития малого предпринимательства; создание льготных условий использования государственных финансовых материальнотехнических и информационных ресурсов научнотехнических разработок и технологий; учреждение порядка регистрации субъектов малого предпринимательства лицензирования их деятельности сертификации их продукции предоставления статистической и бухгалтерской отчетности; поддержка...
40733. Современные тенденции развития малого предпринимательства в регионах 48.5 KB
  Современные тенденции развития малого предпринимательства в регионах. В современных условиях роль малого бизнеса в рыночной экономике растет. Функции малого бизнеса: Экономические функции малого бизнеса: Придает рыночной системе необходимую гибкость активизация структурных сдвигов процессов разгосударствления и приватизации. Социальные функции малого бизнеса: Обеспечивает рост занятости.
40734. Семантические роли 22.17 KB
  Особый вид имплицитной передачи: Пресупозиция характеризуется выводимостью из предложения. Таким образом пресупозицией данного предложения является неоправданность чьихто ожиданий. Предложение с фактивной пресупозицией характеризуется тем что говорящий рассматривает суждение содержащееся в зависимой части предложения как истинное. Предполагают определённое эмоциональное отношение автора к содержанию предложения.
40735. Прикладне значення розробки проблем комунікативного впливу 36.53 KB
  Дослідження мовленнєвого впливу беруть свій початок із часів давньогрецьких риторик. Навчання ораторському мистецтву передбачало певні різновиди мовленнєвого впливу на слухачів однак риторичним аспектом він не обмежувався. у межах психології проблематика мовленнєвого впливу розглядалася в наукових працях М.