Определение и вызов событий в C#

В языке программирования C# события объявляют в классе, используя для этого ключевое слово event. После этого слова указывают тип делегата, который и представляет событие. Давайте посмотрим, как это выглядит на практике:

В нашем случае мы сначала определяем делегат AccountHandler, принимающий один параметр типа string. Далее посредством вышеупомянутого ключевого слова event происходит определение события с именем Notify, которое, в свою очередь, представляет делегат AccountHandler. При этом само по себе название для события может быть и произвольным, но оно в любом случае должно представлять некоторый делегат.

После определения события появляется возможность его вызвать в нашей программе в качестве метода. Для этого используется имя события:

Итак, событие Notify представляет делегат AccountHandler, принимающий один параметр типа string. Раз речь идет о строке, то, соответственно, при вызове события нам необходимо передать в него строку. Однако тут стоит учитывать, что при вызове событий можно столкнуться с ситуацией, когда событие равняется null в том случае, если для него не определен обработчик. Следовательно, в процессе вызова события является целесообразным всегда проверять его на null. К примеру так:

Либо так:

Раз событие представляет делегат, есть возможность вызвать его посредством метода Invoke(), передав в него нужные значения для параметров.

Теперь давайте создадим и вызовем событие:

В результате посредством события Notify мы выполняем уведомление системы о том, что были добавлены средства, а также о том, что средства были сняты со счета либо на счете средств недостаточно.

Также вам может быть интересна следующая статья: - "Управление обработчиками событий".

По материалам https://metanit.com/.