русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Шановні українці! Матеріал був перекладений з російської мови. Тому можуть бути незначні помикли...

Делегати і події C# | Сі Шарп

Делегат - клас, в якому зберігається функція. В визначення делегата входить прототип функцій, які можуть бути представлені цим делегатом. При оголошенні змінної типу делегата вказується функція, тип якої сумісний з типом делегата. Після цього делегат можна використовувати для виклику зазначеної функції. Зазвичай делегати використовуються для реалізації зворотних викликів. Зворотний виклик, виклик функції A функції B, переданої в якості параметра функції A. Зворотні виклики часто застосовуються для передачі функції інформації про вироблених її діях.

Оголошення делегата може розташовуватися всередині або поза будь-якого класу і схоже на оголошення функції, але з додаванням до початку ключового слова delegate. Для оголошення делегата використовується наступний синтаксис:

delegate тип делегат(аргументи);

Можливість оголошення делегата поза будь-якого класу пов'язана з тим, що на основі рядка оголошення делегата компілятор фактичні генерує оголошення класу, похідного від MulticastDelegate.

Для створення делегата необхідно визначити змінну типу делегата і за допомогою ключового слова new викликати конструктор делегата, передавши йому в якості параметра ім'я функції, яка зберігатиметься в делегате.

делегат змінна=new делегат(объект.метод);

Для виклику делегата вказується ім'я змінної типу делегата, а потім у круглих дужках перераховуються через кому параметри, які слід передати функції, що викликається через об'єкт делегата.

В основі механізму обробки подій лежать делегати, тому, перш ніж оголосити подія, необхідно оголосити делегат. Оголошення події схоже на оголошення змінної типу делегата, але з додаванням до початку ключового слова event. Для оголошення події використовується наступний синтаксис:

event делегат подія;

Щоб згенерувати (порушити) подія, вказується ім'я події, а потім у круглих дужках перераховуються через кому параметри події. Перш ніж порушувати подія, рекомендується перевірити, не дорівнює чи null змінна, що описує подія.

Для підписки на подія для будь-якого об'єкта використовується оператор +=, після якого за допомогою ключового слова new викликається конструктор делегата, як параметр якого вказується назва методу, що представляє з себе обробник подій.

объект.событие+=new делегат(метод);

Переглядів: 4249

Повернутися в зміст:Введення в розробку розподілених інформаційних систем




Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн