Тело лямбды оператора может состоять из любого количества операторов;
Однако на практике обычно используется не более двух-трех.
Событийное программирование
Ситуация: вы получили права и хотите, чтобы все об этом знали. Что бы делали лет 5-10 тому назад?
Событийное программирование
Что делают сейчас?
Как это можно описать
1 Вариант: вам нужно иметь записную книжку с номерами всех тех, кого вы хотите оповестить о каком-то событии. И каждому нужно еще позвонить и сказать об этом.
Как это можно описать
2 Вариант: вы просто «постите» новость в социальной сети и все, кто на вас «подписан» видят вашу новость.
Переведем на «программистский» язык
Ранее: мы должны были иметь объекты всех классов, кто должен знать об изменениях внутри класса и вызывать методы этих объектов.
А представьте, что появилось еще 2 класса, кто должны знать об оповещениях. Сколько кода прописать придется?
Переведем на «программистский» язык
Теперь: мы создаем поле-«событие» в нашем классе и метод, с помощью которого любой класс может «подписаться» на это событие. Далее, если в классе происходят изменения, просто вызывается это событие и все классы, кто на него подписаны реагируют на это.
Переведем на «программистский» язык
«Изменением в классе» может быть любой вызываемый метод класса или событие.
«Реакция другого класса» это метод того класса, который будет вызываться при совершении события.
«Подписать на событие» это передать в поле-событие класса метод другого класса, который будет вызываться при наступлении события.
Как создавать
Чтобы создать событие нам понадобится делегат
public delegate void Del(string message);
Теперь в классе можем создать поле типа событие, используя ключевое слово event