Делегаты
Делегат — это объект, который может ссылаться на метод. Создавая делегат, вы создаете объект, который может содержать ссылку на метод. Более того, этот метод можно вызвать посредством соответствующей ссылки. Таким образом, делегат может вызывать метод, на который он ссылается. Во время выполнения программы один и тот же делегат можно использовать для вызова различных методов, просто заменив метод, на который ссылается этот делегат. Таким образом, метод, который будет вызван делегатом, определяется не в период компиляции программы, а во время ее работы. В этом и состоит достоинство делегата. Делегат объявляется с помощью ключевого слова delegate. Общая форма объявления делегата имеет следующий вид: delegate тип_возврата имя(список_параметров); Здесь элемент тип_возврата представляет собой тип значений, возвращаемых методами, которые этот делегат будет вызывать. Имя делегата указывается элементом имя. Параметры, принимаемые методами, которые вызываются посредством делегата, задаются с помощью элемента список_параметров. Делегат может вызывать только такие методы, у которых тип возвращаемого значения и список параметров (т.е. его сигнатура) совпадают с соответствующими элементами объявления делегата. Делегат может вызывать либо метод экземпляра класса, связанный с объектом, или статический метод, связанный с классом
|