Доступ к "внешним" переменным

Доступ к "внешним" переменным

Анонимные методы интересны в том отношении, что они позволяют доступ к локальным переменным определяющего их метода. Формально говоря, такие переменные являются "внешними переменными" анонимного метода. Для примера предположим, что наш метод Main() определяет локальную целую переменную-счетчик с именем aboutToBlowCounter. В рамках анонимных методов, обрабатывающих событие AboutToBlow, мы будем увеличивать этот счетчик на 1 и печатать его значение в конце Main().

static void Main(string[] args) {

 …

 int aboutToBlowCounter = 0;

 // Создание машины.

 Car c1 = new Car("SlugBug", 100, 10);

 // Регистрация обработчиков событий в виде анонимных методов.

 c1.AboutToBlow += delegate {

  aboutToBlowCounter++;

  Console.WriteLine("Ox! Едем слишком быстро!");

 };

 c1.AboutToBlow += delegate(string msg) {

  aboutToBlowCounter++;

  Console.WriteLine("Важное сообщение от Car: {0}", msg);

 };

 …

 Console.WriteLine("Событие AboutToBlow вызывалось {0} раз(а).", aboutToBlowCounter);

 Console.ReadLine();

}

В результате выполнения этого обновленного метода Main() завершающий оператор Console.WriteLine() сообщит вам о том, что событие AboutToBlow генерировалось дважды.

Замечание. Анонимный метод не имеет возможности получить доступ к параметрам ref и out определяющего метода.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

ОГОРОД КОЗЛОВСКОГО: VBR[Variable Bit Rate - кодирование с переменным битрейтом.], OIS[Optical Image Stabilization - оптическая стабилизация изображения.] и прочие аббревиатуры

Из книги Журнал "Компьютерра" №761 автора Журнал «Компьютерра»

ОГОРОД КОЗЛОВСКОГО: VBR[Variable Bit Rate - кодирование с переменным битрейтом.], OIS[Optical Image Stabilization - оптическая стабилизация изображения.] и прочие аббревиатуры Автор: Козловский ЕвгенийЭтот "Огород" я готовил, пожалуй, дольше любого другого: едва ли не полгода. Все началось в


Модель страницы с внешним кодом поддержки

Из книги Домашние и офисные сети под Vista и XP автора Ватаманюк Александр Иванович

Модель страницы с внешним кодом поддержки Чтобы продемонстрировать возможности модели страницы с внешним кодом поддержки, мы воссоздадим предыдущий пример, используя шаблон Web-узла Visual Studio 2005 (при этом важно понимать, что для создания страниц с внешним кодом поддержки


Доступ к принтерам

Из книги Советы по Delphi. Версия 1.0.6 автора Озеров Валентин

Доступ к принтерам Часто кому-то бывает необходимо распечатать информацию, а принтера у него под рукой нет. Если вы подключены к сети и у вас есть принтер, то вы можете стать настоящим спасителем, если предоставите его в общее пользование. Тем более что сделать это не


Доступ

Из книги Asterisk™: будущее телефонии Второе издание автора Меггелен Джим Ван


Доступ к GUI

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

Доступ к GUI После завершения установки и перезагрузки компьютера можно переходить к GUI Asterisk. URL, используемый для доступа к GUI Asterisk, - это IP-адрес или имя хоста, которое выводится на экран после перезагрузки компьютера. Введите этот IP-адрес в адресной строке броузера. С


10.4. Подключение к внешним базам данных

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

10.4. Подключение к внешним базам данных Благодаря усилиям многих людей Ruby может взаимодействовать с разными базами данных, от монолитных систем типа Oracle до более скромного MySQL. Для полноты описания мы включили в него также текстовые файлы в формате CSV.Уровень


13.1.2. Доступ к локальным переменным потока

Из книги Macromedia Flash Professional 8. Графика и анимация автора Дронов В. А.

13.1.2. Доступ к локальным переменным потока Мы знаем об опасности доступа из потока к переменным, определенным вне его области видимости, но мы также знаем, что у потока могут быть локальные данные. А что делать, если поток хочет «обнародовать» часть принадлежащих ему


Вызов функции с переменным числом аргументов

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

Вызов функции с переменным числом аргументов Для вызова функции с переменным числом аргументов не требуется никаких специальных действий: в вызове функции просто задается то число аргументов, которое нужно. В предварительном объявлении (если оно есть) переменное число


Ограничения на доступ к внешним файлам

Из книги Linux глазами хакера автора Флёнов Михаил Евгеньевич

Ограничения на доступ к внешним файлам Интернет — небезопасное место. Вирусы, "троянские программы", мошеннические сайты — всего этого добра там более чем достаточно. И неудивительно, что создатели программ, работающих с Интернетом, встраивают в них различные средства,


4.2. Присваивание значений переменным

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

4.2. Присваивание значений переменным =оператор присваивания (пробельные символы до и после оператора -- недопустимы) Не путайте с операторами сравнения = и -eq!Обратите внимание: символ = может использоваться как в качестве оператора присваивания, так и в качестве


10.3.1. Доступ

Из книги iOS. Приемы программирования автора Нахавандипур Вандад

10.3.1. Доступ Такие директивы определяют основные права доступа к FTP-серверу. Давайте рассмотрим основные из них:? class имя type адреса — позволяет организовать классы пользователей по их типу и адресу. В нашем конфигурационном файле указана следующая строка:class all anonymous,guest,real


14.3.1. Присваивание значений переменным среды

Из книги iPad для начинающих автора Стивенсон Джон

14.3.1. Присваивание значений переменным среды Для присваивания значений переменным среды применяется команда:VARIABLE_NAME=значение; export VARIABLE_NAMEТочка с запятой между двумя командами выступает в роли разделителя команд. К аналогичному результату можно прийти следующим


7.2. Доступ к переменным в блоковых объектах

Из книги Идеальный программист. Как стать профессионалом разработки ПО автора Мартин Роберт С.

7.2. Доступ к переменным в блоковых объектах Постановка задачи Необходимо понять разницу между доступом к переменным в методах Objective-C и доступом к этим переменным в блоковых


Глава 3. Подключение iPad к внешним устройствам и управление данными

Из книги автора

Глава 3. Подключение iPad к внешним устройствам и управление данными Как подсоединить iPad к компьютеру?Для того чтобы подключить ваш iPad к компьютеру, достаточно всего лишь кабеля USB, который идет в комплекте с самим девайсом. После того, как вы соедините между собой компьютер


Анализ по трем переменным

Из книги автора

Анализ по трем переменным Широкополосный дельфийский метод хорошо подходит для выбора одной номинальной оценки. Но как говорилось ранее, в большинстве случаев желательно иметь три оценки для создания вероятностного распределения. Оптимистическую и пессимистическую