Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

На данный метод накладывается ограничение – объекты можно сравнивать друг с другом с помощью метода CompareTo

Параметризованный (обобщенный) метод Sort с параметром- типом данных.

Обобщенные методы

Ограничения

Обобщенные(параметризованные) методы, ограничения на использование параметризованных типов

КИШЕЧНЫЕ ИНФЕКЦИИ, ВЫЗЫВАЕМЫЕ ПРОСТЕЙШИМИ

К числу протозойных колитов относятся колиты, вызывае­мые лямблиями, амебами и балантидиями. Протозойные колиты


отличаются тем, что они всегда высокие по локализации (слепая кишка) и глубокие, с длительно не заживающими язвами и гру­быми рубцами. Наряду с кишечником нередко поражаются внут­ренние органы — печень, селезенка, головной мозг.

 


 



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

Ограничения задаются после ключевого слова where, например:

public class Stack<T>

where T:struct {…}

Здесь задано ограничение, что класс стек может использовать элементы только значимого типа (типа структуры). Для ссылочного типанеобходимо использовать ключевое слово class.

Указание в качетстве ограничений имени класса означает, что соответствующий параметр (аргумент) должен быть инициализирован или именем этого класса, либо его потомка.

Иногда требуется иметь отдельный метод, параметризованный каким-либо типом данных. Примером такого метода может служить метод сортировки данных. В примере приведена сортировка методом выбора.

Алгоритм ее состоит в том, что сначала выбирается наименьший элемент массива и меняется местами с первым элементом. Затем просматриваются элементы, начиная со второго, и наименьший из них меняется местами со вторым элементом и так далее. Всего произведено будет n-1 замен. На последнем проходе цикла при необходимости меняются местами предпоследний и последний элементы массива.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleApplication4

{

class Program

{

static void Sort<T>(ref T[] a) where T: IComparable<T>

{

T buf;

int n = a.Length;

for (int i = 0; i < n; i++)

{

int im = i;

for (int j = i + 1; j < n; j++)

if (a[j].CompareTo(a[im]) < 0) im = j;

buf = a[i]; a[i] = a[im]; a[im] = buf;

}

}

static void Main(string[] args)

{

int[] a = { 1, 6, 4, 2, 7, 5, 3 };

//вызов метода Sort с явным указанием параметра-типа

Sort<int>(ref a);

foreach (int x in a) Console.WriteLine(x);

double[] b = { 1.1, 6.6, 4.4, 2.4, 7.6, 5.5, 3.3 };

//вызов метода Sort без указания параметра типа

// компилятор по типу переданного параметра определяет какой тип //используется

Sort(ref b);

foreach (double x in b) Console.WriteLine(x);

string[] s = { "sdef", "sd", "sdfsd", "sdf" };

Sort(ref s);

foreach (string x in s) Console.WriteLine(x);

Console.ReadKey();

}

}

}

Преимущества использования параметризованных классов и методов:

ü описывают способы хранения и алгоритмы обработки данных независимо от типов данных

ü выполняют контроль типов во время компиляции, а не исполнения программы

ü увеличивают скорость обработки данных за счет исключения операций преобразования, упаковки и распаковки типов.

<== предыдущая лекция | следующая лекция ==>
Грибковые кишечные инфекции | 
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 424; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.