Делегаты – способ именования сигнатуры метода. Делегаты предназначены для передачи методов другим методам. Если требуется передавать методы в качестве параметров, сведения о методе необходимо поместить в новый тип объекта – делегат. Делегаты содержат информацию о методе.
public delegate void VoidOperation(uint x);
Определили делегат VoidOepration и указали, что каждый экземпляр этого делегата может содержать сведения о методе, принимающем один параметр uint и возвращающем void. Синтаксис аналогичен тому, что используется при определении методов, за исключением того, что отсутствует тело метода, а определение предваряется ключевым словом delegate.
Определив делегата, мы можем создать его экземпляр и использовать его для хранения сведений о конкретном методе.
Пример использования:
int x = 40; GetString first = new GetString(x.ToString); Console.WriteLine(first()); // эквивалентен WriteLine(x.ToString());Читать далее...