|
1 / 1 / 0
Регистрация: 26.10.2014
Сообщений: 74
|
|||||||||||
Не понимаю суть событий19.07.2015, 21:15. Показов 1870. Ответов 11
Метки нет (Все метки)
Здравствуйте! Пытаюсь разобраться в событиях в .NET и не могу понять, зачем они нужны? Допустим, моя программа считает числа от 1 до 10. Я хочу, чтобы при достижении числа 8 произошло срабатывание, например, выдалось сообщение (на MSDN есть подобный пример, но он не доведен до конца). В многочисленных статьях и мануалах написано, что для этого нужно создать делегат, создать событие, выполнить подписку, выполнить вызов события... Куча действий! И всё для того, чтобы в цикле счетчика поставить условие и указать:
Или всё-таки можно обеспечить срабатывание программы, не устанавливая в цикле счетчика условие? Поясните, пожалуйста
0
|
|||||||||||
| 19.07.2015, 21:15 | |
|
Ответы с готовыми решениями:
11
Правильно ли я оформил таблицы, не понимаю суть задачи, разбор |
|
606 / 388 / 198
Регистрация: 31.03.2013
Сообщений: 2,690
|
|
| 19.07.2015, 21:23 | |
|
Например, если вы захотите разом выполнить несколько методов, тогда вы подпишитесь на них и вызвав 1 раз событие, оно вызовет все эти методы.
0
|
|
|
|
||
| 19.07.2015, 21:27 | ||
|
Вы пишете свою библиотеку, в ней в каком-то классе происходят действия, и вам нужно сообщить что-то извне этой библиотеки. Кому - на данный момент неизвестно, и не важно, просто нужно обеспечить, чтобы внешний вызывающий код имел возможность получить уведомление и информацию из вашего кода (если внешнему коду это потребуется). Вот тут вам и помогут события. Создали событие (возможно, со своим аргументом), и вызвали его когда необходимо. А внешний код (консоль, форма, не важно) при желании подпишется на это событие и получит уведомление (с информацией).
1
|
||
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
||||||
| 19.07.2015, 22:18 | ||||||
|
ctakah3112,
1. а если за вот этими пару словами
2. события это обыкновенная функция (метод), зачем ее выделили в какие то там события? ответ очень простой, что бы когда ты будешь редактировать чей то код, тебе не пришлось ломать голову "а что это за метод такой?" а сразу было понятно что это событие. И вообще в C# дофига всяких штук, которые на первый взгляд нафиг не нужны, но они есть и их задача делать код более понятным для программиста, с чем они успешно справляются.
0
|
||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 19.07.2015, 23:27 | ||
|
Проблема в том, что при разработке этой библиотеки сотрудник Microsoft понятия не имел о том, какой код вы хотите выполнять при клике на эту кнопку.
1
|
||
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
|
| 19.07.2015, 23:34 | |
|
и кстати да, ты на данное событие можешь добавить код из вне, без всяких проблем, в отличии от того что ты написал.
0
|
|
|
23 / 24 / 11
Регистрация: 04.12.2014
Сообщений: 422
|
|||||||
| 19.07.2015, 23:40 | |||||||
|
Не мешайте мух с котлетами)
посмотрите мой код, это вполне простой пример, не нужен в простых примерах делегат
0
|
|||||||
|
Кактус
67 / 67 / 19
Регистрация: 23.05.2012
Сообщений: 342
|
|
| 20.07.2015, 01:15 | |
|
Данный вопрос из разряда зачем нужен foreach если есть for и while? Ответ прост: абстракция и простота.
Делегаты являются хорошим упрощением, с ними код выглядит элементарно понятнее. Конечно, можно обойтись без них, но стоит ли это того? Если проще, делегаты это своего рода broadcast вещание. Как радиовышка передает сигнал всему миру, так и событие - передает контроль всем обработчикам, которые на него подписались. При этом радиовышка внутри может работать как угодно (синхронно, асинхронно) и ей совершенно не хочется знать, что существует Петр Иванович с его приемником и его способом приема, она ему просто закинет информацию, а он делай с ней, что хочет. Итого: да, можно написать свой список делегатов с блекджеком и барышнями, и реализовать те же самые события вызвав этот список по вызову спец. функции, но проще все же будет разобраться с событиями.
1
|
|
|
1 / 1 / 0
Регистрация: 26.10.2014
Сообщений: 74
|
||||||
| 20.07.2015, 16:02 [ТС] | ||||||
|
Спасибо, но один вопрос остается.
Допустим, что переменная int i - глобальная в пределах моего класса, и с ней происходят некие арифметические манипуляции. Допустим, я не могу их постоянно контролировать, но я хочу, чтобы при равенстве этой переменной конкретному значению, например, тем же восьми, были запущены определенные методы. Я не хочу на каждом шагу ставить конструкцию
0
|
||||||
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
|
| 20.07.2015, 17:00 | |
|
ctakah3112, к сожалению это не возможно.
Я когда изучал C# после C++ тоже думал что события могут что то подобное, на то они события, но оказалось все тривиально, надо каждый раз проверять.
0
|
|
|
1168 / 886 / 517
Регистрация: 09.04.2014
Сообщений: 2,101
|
|||||||
| 20.07.2015, 17:35 | |||||||
Сообщение было отмечено ctakah3112 как решение
Решение
2
|
|||||||
| 20.07.2015, 17:35 | |
|
Помогаю со студенческими работами здесь
12
Сгенерировать 30 случайных событий с интенсивностью 10 событий в час с помощью мастера функций Суммой двух событий А и В называется событие С, состоящее…1) в наступлении хотя бы одного из событий А и В2 Произведением двух событий А и В называется событие С, состоящее…1) в наступлении хотя бы одного из событий
Нужен батник для создания отчета событий и их свойств из журнала событий на локальном компьютере Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит значение перечислений.
/ / Событие "НачалоВыбора" реквизита на форме. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|