Обобщенная подпрограмма может выступать в качестве формального параметра другой обобщенной подпрограммы.
Например, в классе System.Array
имеется несколько статических обобщенных методов с обобщенными
подпрограммами в качестве параметров. Так, System.Array.FindAll
имеет следующий прототип:
System.Array.FindAll<T>(a: array of T; pred: Predicate<T>): array of T;
и возвращает подмассив массива a
элементов T, удовлетворяющих условию
pred.
Приведем пример вызова этой функции:
var a := [1,3,6,5,8];
var b := System.Array.FindAll(a,x -> x mod 2 = 0);
Здесь возвращается массив b,
содержащий все четные значения массива a в
том же порядке.