ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »
