Лекция 5 Делегаты. Что это такое?



бет4/5
Дата02.02.2023
өлшемі0,54 Mb.
#167159
түріЛекция
1   2   3   4   5
Байланысты:
80274.pptx

Особенности

  • Тело лямбды оператора может состоять из любого количества операторов;
  • Однако на практике обычно используется не более двух-трех.

Событийное программирование

  • Ситуация: вы получили права и хотите, чтобы все об этом знали. Что бы делали лет 5-10 тому назад?

Событийное программирование

  • Что делают сейчас?

Как это можно описать

  • 1 Вариант: вам нужно иметь записную книжку с номерами всех тех, кого вы хотите оповестить о каком-то событии. И каждому нужно еще позвонить и сказать об этом.

Как это можно описать

  • 2 Вариант: вы просто «постите» новость в социальной сети и все, кто на вас «подписан» видят вашу новость.

Переведем на «программистский» язык

  • Ранее: мы должны были иметь объекты всех классов, кто должен знать об изменениях внутри класса и вызывать методы этих объектов.
  • А представьте, что появилось еще 2 класса, кто должны знать об оповещениях. Сколько кода прописать придется?

Переведем на «программистский» язык

  • Теперь: мы создаем поле-«событие» в нашем классе и метод, с помощью которого любой класс может «подписаться» на это событие. Далее, если в классе происходят изменения, просто вызывается это событие и все классы, кто на него подписаны реагируют на это.

Переведем на «программистский» язык

  • «Изменением в классе» может быть любой вызываемый метод класса или событие.
  • «Реакция другого класса» это метод того класса, который будет вызываться при совершении события.
  • «Подписать на событие» это передать в поле-событие класса метод другого класса, который будет вызываться при наступлении события.

Как создавать

  • Чтобы создать событие нам понадобится делегат
  • public delegate void Del(string message);

  • Теперь в классе можем создать поле типа событие, используя ключевое слово event


  • Достарыңызбен бөлісу:
1   2   3   4   5




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет