Знайомство з делегатами в c # (частина 1)

Знайомство з делегатами в C # (Частина 1)

Знайомство з делегатами в c # (частина 1)

Делегати в C # (теорія)

Доброго вам дня! У цій статті я хочу розповісти про те, що таке делегати в C #, як їх створювати і як ними користуватися. Делегат - це сутність в програмі, яка зберігає посилання на який-небудь метод, і при необхідності, може цей метод викликати. Відразу ж може виникнути питання, а навіщо викликати метод через якогось посередника, якщо можна викликати його безпосередньо? Справа в тому, що на етапі складання програми, програміст може не знати який метод потрібно буде викликати в певний момент виконання програми. А використання делегатів, якраз дозволяє написати, в якійсь мірі, абстрактний код. Але про це я розповім в наступній статті, в якій покажу приклад використання делегатів на практиці. А поки просто повірте мені на слово.

Ну давайте вже розберемося як створюються делегати. Для створення делегата, потрібно спочатку визначити його тип. Як і в разі класів, ми створюємо якийсь шаблон, відповідно до якого, буде в подальшому створювати конкретні екземпляри. Тип делегата визначається за наступним правилом:

Як бачите, створення делегата дуже схоже на створення звичайного об'єкта, але при створенні об'єкта-делегата, ми вказуємо метод, на який посилається делегат. В даному випадку, це метод «Sum». А викликати це метод через створений делегат можна так:

В наведеному вище прикладі, ми викликали метод «Sum». через делегат «sumDelegat». з параметрами «24.5» і «21.4». А нижче представлений приклад, в якому створюються два об'єкти-делегата типу «DoubleDelegat», причому один виконує метод складання аргументів, а другий віднімання, хоча обидва мають один тип (але посилаються на різні методи):

Схожі статті