Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csOpDeEa 139 of 163 menu
◀ ▶

Данные в аргументах события в C#

Когда вместе с событием нужно передать числа или строки, вводят класс аргументов, наследник EventArgs. Событие объявляют в стандартной форме с типом аргументов в угловых скобках.

Запишем класс аргументов с полем, источник с методом оповещения и обработчик, который читает переданное значение:

void OnChanged(object? sender, ValueEventArgs e) { Console.WriteLine(e.Value); } Meter meter = new Meter(); meter.Changed += OnChanged; meter.Set(7); class ValueEventArgs : EventArgs { public int Value; } class Meter { public event EventHandler<ValueEventArgs>? Changed; public void Set(int value) { Changed?.Invoke(this, new ValueEventArgs { Value = value }); } }

Сделайте класс TextEventArgs с полем Text, класс Speaker с полем оповещения Say и методом, который передаёт строку подписчикам в аргументах. Подпишите обработчик, выводящий переданный текст, и добейтесь вывода "hi" при вызове метода.

Сделайте класс ScoreEventArgs с полем Points, класс Game с оповещением Scored и методом, который сообщает новое число очков. Подпишитесь и выведите Points после одного вызова метода с 3.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить