Сообщения с тегом ‘delegate’
Функции высших порядков
Написано admin в 20 Июнь 2008 – 21:39 -Функции высших порядков
Одно из наиболее важных применений делегатов связано с функциями высших порядков. Функцией высшего порядка называется такая функция (метод) класса, у которой один или несколько аргументов принадлежат к функциональному типу. Без этих функций в программировании обойтись довольно трудно. Классическим примером является функция вычисления интеграла, у которой один из аргументов задает подынтегральную функцию. Другим примером может служить функция, сортирующая объекты. Аргументом ее является функция Compare, сравнивающая два объекта. В зависимости от того, какая функция сравнения будет передана на вход функции сортировки, объекты будут сортироваться по-разному, например, по имени, или по ключу, или по нескольким полям. Вариантов может быть много, и они определяются классом, описывающим сортируемые объекты. Read more »
Tags: callback, delegate, EvalIntegral, Functions, HighOrderIntegral, int, period, state, Timer, Unix, Win
Находится в Учебник | No Comments »
Как определяется функциональный тип и как появляются его экземпляры
Написано admin в 20 Июнь 2008 – 21:37 -Как определяется функциональный тип и как появляются его экземпляры
Слово делегат (delegate) используется в C# для обозначения хорошо известного понятия. Делегат задает определение функционального типа (класса) данных. Экземплярами класса являются функции. Описание делегата в языке C# представляет собой описание еще одного частного случая класса. Каждый делегат описывает множество функций с заданной сигнатурой. Каждая функция (метод), сигнатура которого совпадает с сигнатурой делегата, может рассматриваться как экземпляр класса, заданного делегатом. Синтаксис объявления делегата имеет следующий вид:
[<спецификатор доступа>] delegate <тип результата > <имя класса> (<список аргументов>);
Этим объявлением класса задается функциональный тип — множество функций с заданной сигнатурой, у которых аргументы определяются списком, заданным в объявлении делегата, и тип возвращаемого значения определяется типом результата делегата.
Спецификатор доступа может быть, как обычно, опущен. Где следует размещать объявление делегата? Как и у всякого класса, есть две возможности:
- непосредственно в пространстве имен, наряду с объявлениями других классов, структур, интерфейсов;
- внутри другого класса, наряду с объявлениями методов и свойств. Такое объявление рассматривается как объявление вложенного класса. Read more »
Tags: Account, Console, delegate, Fun, namespace, Person, Plus, Proc, TestOwnDel, void, WriteLine
Находится в Учебник | No Comments »
Урок 34. Пример класса с событием
Написано admin в 14 Июнь 2008 – 16:18 -Урок 34. Пример класса с событием
На этом уроке мы расмотрим еще один пример класса с событием. Класс наш будет представлять из себя игральную кость, в классе будет единственный метод rnd, возвращающий случайное число от 1 до 6. Если этот метод возвратит 6, то сгенерируется событие max.
Tags: Console, delegate, EventHandler, namespace, Random, WriteLine
Находится в Уроки C# | No Comments »
