ВУЗ:
Составители:
Рубрика:
67
Глава 5. Функциональные типы в С#
5.1. Делегаты
При выполнении программы машинный код откомпилированной
функции загружается в оперативную память компьютера. Адрес, по
которому функция будет расположена в памяти, можно использовать для ее
вызова. Для этого в языке С# существует специальный тип данных – делегат,
значением которого является адрес функции.
Делегат определяется типом возвращаемого значения и списком
формальных параметров тех функций, на которые он будет ссылаться.
Поэтому адреса различных функций, имеющих одинаковый прототип, могут
быть присвоены одной переменной-делегату. Имя функции соответствует ее
адресу.
Делегат определяется следующим образом:
delegate тип_функции имя_делегата(список_параметров);
где тип_функции определяет тип возвращаемого значения функции,
список_параметров – список формальных параметров.
Покажем на примере способы работы с делегатами. В классе Math
имеются статические методы, вычисляющие значения следующих
математических функций:
double Sin(double); // y = sin(x)
double Exp(double); // y = exp(x)
double Atan(double); // y = arctg(x)
// и т.д.
Опишем делегат с именем FunctionDelegate, который определяет
новый тип данных, указывающий на любой из таких методов.
delegate double FunctionDelegate (double x);
Теперь можно создавать переменные этого типа:
FunctionDelegate f;
Глава 5. Функциональные типы в С#
5.1. Делегаты
При выполнении программы машинный код откомпилированной
функции загружается в оперативную память компьютера. Адрес, по
которому функция будет расположена в памяти, можно использовать для ее
вызова. Для этого в языке С# существует специальный тип данных – делегат,
значением которого является адрес функции.
Делегат определяется типом возвращаемого значения и списком
формальных параметров тех функций, на которые он будет ссылаться.
Поэтому адреса различных функций, имеющих одинаковый прототип, могут
быть присвоены одной переменной-делегату. Имя функции соответствует ее
адресу.
Делегат определяется следующим образом:
delegate тип_функции имя_делегата(список_параметров);
где тип_функции определяет тип возвращаемого значения функции,
список_параметров – список формальных параметров.
Покажем на примере способы работы с делегатами. В классе Math
имеются статические методы, вычисляющие значения следующих
математических функций:
double Sin(double); // y = sin(x)
double Exp(double); // y = exp(x)
double Atan(double); // y = arctg(x)
// и т.д.
Опишем делегат с именем FunctionDelegate, который определяет
новый тип данных, указывающий на любой из таких методов.
delegate double FunctionDelegate (double x);
Теперь можно создавать переменные этого типа:
FunctionDelegate f;
67
Страницы
- « первая
- ‹ предыдущая
- …
- 65
- 66
- 67
- 68
- 69
- …
- следующая ›
- последняя »
