ВУЗ:
Составители:
Рубрика:
129
delegate тип имя_делегата<список_обобщенных_типов>
(список_параметров)
{
. . .
}
список_обобщенных_типов := T1 [,T2, . . ., TN], Ti
– произвольный идентификатор обобщенного типа;
тип – тип возвращаемого значения функций, на которые может
ссылаться делегат. В качестве этого типа может быть указан как конкретный
тип данных, так и один из списка обобщенных типов;
список_параметров – список формальных параметров функций,
на которые ссылается делегат. Они также могут быть описаны как с
указанием конкретного типа данных, так и одного типа из списка
обобщенных типов.
Например, для хранения ссылки на функции сравнения объектов
произвольных типов, определим обобщенный делегат:
delegate bool CompareDelegate<T>(T ob1, T ob2);
Экземпляр этого делегата может указывать на любые функции
различных классов, в том числе и конструированных на основе обобщенных,
тип возвращаемого значения которых bool и формальными параметрами
которых являются два объекта одинакового типа. Этому прототипу
bool SomeMethod(Type ob1, Type ob2)
соответствуют все функции сравнения объектов.
Тогда функция сортировки может быть определена следующим
прототипом:
public static void Sort<T>(CompareDelegate <T> comparer,
T[] items, int left, int right)
где первым параметром является указатель на функцию сравнения,
задающую порядок сортировки элементов массива (по возрастанию или по
убыванию). Сам метод выглядит так:
delegate тип имя_делегата<список_обобщенных_типов> (список_параметров) { . . . } список_обобщенных_типов := T1 [,T2, . . ., TN], Ti – произвольный идентификатор обобщенного типа; тип – тип возвращаемого значения функций, на которые может ссылаться делегат. В качестве этого типа может быть указан как конкретный тип данных, так и один из списка обобщенных типов; список_параметров – список формальных параметров функций, на которые ссылается делегат. Они также могут быть описаны как с указанием конкретного типа данных, так и одного типа из списка обобщенных типов. Например, для хранения ссылки на функции сравнения объектов произвольных типов, определим обобщенный делегат: delegate bool CompareDelegate(T ob1, T ob2); Экземпляр этого делегата может указывать на любые функции различных классов, в том числе и конструированных на основе обобщенных, тип возвращаемого значения которых bool и формальными параметрами которых являются два объекта одинакового типа. Этому прототипу bool SomeMethod(Type ob1, Type ob2) соответствуют все функции сравнения объектов. Тогда функция сортировки может быть определена следующим прототипом: public static void Sort (CompareDelegate comparer, T[] items, int left, int right) где первым параметром является указатель на функцию сравнения, задающую порядок сортировки элементов массива (по возрастанию или по убыванию). Сам метод выглядит так: 129
Страницы
- « первая
- ‹ предыдущая
- …
- 127
- 128
- 129
- 130
- 131
- …
- следующая ›
- последняя »