Допустим, в разных методах вашего алгоритма есть необходимость каким-то образом сравнить два переданных числа. В методе Пример() нужно узнать, делится ли первое число на второе без остатка. В другом методе, например, нужно просто узнать, какое из чисел больше.
Для выполнения такой задачи вы можете во всех случаях сравнения двух чисел вызывать один и тот же собственный метод СравнитьДваЧисла(). А передавать в него три аргумента: два числа и значение функционального типа, которое описывает тот алгоритм сравнения, который вам нужен в конкретном случае. Это можно сделать с помощью лямбда-выражения или с помощью ссылки на метод.