Может ли кто-нибудь разместить некоторые явные примеры использования событий на C# (или любом языке .NET)? Есть много таких в Интернете, но большинство из них сложны, и они не применяются к каждой ситуации. Сделайте это универсальным если возможно пожалуйста.Как практически использовать события?
ответ
События являются основой event-driven programming (очевидно). Таким образом, событие подходит в любое время, когда вы хотите предпринять действия (действия) на основе чего-то еще. Что-то еще может быть множеством вещей - пользователь, нажимая кнопку, таймер, закрывающееся окно и т. Д. Трудно сделать его действительно универсальным, так как существует так много разных сценариев.
Один пример должен был бы заполнить ярлык с текстом, когда пользователь нажимает на кнопку:
btnMyButton.Click += (o, ev) => { SetTextLabel(label1, "You clicked the button"); };
Заметим, что SetTextLabel является функция, которую вы бы обеспечить, и это должно быть THREADSAFE (в противном случае я хотел бы получить толченый комментаторам говорил мой код не был так)
Это использование предиката как функции (я знаю, что это делегат)? Хороший, не знал этого! – Johnny
Да, это замечательно для относительно коротких обработчиков событий, хотя в обычной форме Windows это как бы поражает мысль о дизайнере ... Я обычно не использовал его таким образом для событий формы, но для событий, которые другие (не- UI). Обратите внимание, что в этом примере я не использую 'object o' или' System.EventHandler ev', но вы, безусловно, можете их использовать. –
Ну, я не собираюсь использовать это для WinForms, по крайней мере WinForms - это не причина, по которой я спросил об этом. Однако, не могли бы вы рассказать мне что-нибудь об ev, это 'System.EventArgs', я полагаю, как я могу его использовать? – Johnny
С вашего поста, кажется, что вы хотите «пример», который «применим к каждой ситуации», будучи «универсальным» и «практичным». Я не понимаю, как это возможно.
Если вы просто хотите лучше понять события, начните here. Вы могли бы найти что-то более короткое, но это может быть неясным.
Мне нужен короткий пример - кусок кода, чтобы посмотреть, как он работает. – Johnny
- Предоставление обновлений и завершение выполнения задач.
- Реагируя на ввод данных пользователем
- Таймеры
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
public class EXMAPLE
{
public event EventHandler Changed;
protected string _content;
public string Content{
get { return _content; }
set
{
_content = value;
OnChanged(EventArgs.Empty);
}
}
// Invoke the Changed event; called whenever list changes:
protected virtual void OnChanged(EventArgs e)
{
if (Changed != null)
Changed(this, e);
}
}
class Program
{
private static void EXAMPLE_CONTENT_CHANGED(object sender, EventArgs e)
{
EXMAPLE ex = (EXMAPLE)sender;
Console.WriteLine(ex.Content);
}
private static void INNA_REAKCJA(object sender, EventArgs e)
{
Console.WriteLine("The Content of EXAMPLE was changed");
}
static void Main(string[] args)
{
EXMAPLE ex1 = new EXMAPLE();
EXMAPLE ex2 = new EXMAPLE();
//add event ;->
ex1.Changed += new EventHandler(EXAMPLE_CONTENT_CHANGED);
ex2.Changed += new EventHandler(EXAMPLE_CONTENT_CHANGED);
ex2.Changed += new EventHandler(INNA_REAKCJA);
//test
ex1.Content = "value 1";
ex2.Content = "value 2";
System.Console.ReadKey();
}
}
}
это лишь простой пример - не универсальны, стр.
Практическое использование показано здесь довольно ясно, приятно! – Johnny
самый простой пример, когда ваше создание аф orm, который содержит интерактивное управление, такое как кнопка. Когда вы дважды щелкаете по кнопке, Visual Studio генерирует событие в коде, указывающем на метод, который будет вызываться, когда событие будет запущено.
this.MyButton.Click += new System.EventHandler(this.MyButton_Click);
Общие события - это в основном сообщения, отправленные объектом для уведомления других объектов о том, что произошло действие.
События - это текущий способ взаимодействия с пользовательским интерфейсом с остальной частью приложения. Будущее Microsoft в развитии событий зависит от будущего этой новой технологии, называемой RX Extensions, хотя (кажется, очень многообещающей). Java имеет компонент Actionlistener (исходящий из шаблона наблюдателя), если вы его знаете и можете оценить удобство использования событий (в пользовательском интерфейсе). События в целом - это механизм, с помощью которого уведомления передаются объекту-референту, когда что-то происходит.
Также проверьте соответствующий учебник от msdn.
Пример:
List.Changed -= new ChangedEventHandler(ListChanged);
Здесь разработчик подключили метод, который будет вызываться с восходом Измененного случае контейнера List. Таким образом, когда список будет изменен (добавлен или удален элемент), этот метод будет вызван.
Это RX Extensions выглядит очень многообещающим. Спасибо за информацию. – Tarik
Я могу проверить этот Rx, поскольку я прогрессирую, спасибо за подсказку! – Johnny
Да, Эрик Мейер делает отличную работу. Проверьте канал9 еще раз. Есть много видеороликов, объясняющих эту новую парадигму. ;););) –
- 1. Использование практически унаследованной функции практически нет?
- 2. UISwitch в UIScrollview практически невозможно использовать
- 3. разница между ViewChildern и ContentChildern и как использовать их практически?
- 4. , практически начав с Sweave
- 5. Практически применимый контент
- 6. Как использовать события?
- 7. Как использовать события Ionic2
- 8. Как использовать делегированные события?
- 9. Как использовать события GridView
- 10. Как использовать пользовательские события
- 11. Внедрение RabbitMq Практически
- 12. BigQuery практически не подходит
- 13. Практически беззаконный потребитель-производитель
- 14. Быстрый и (практически) беспорядочный хэш
- 15. Восстанавливающие практически дублирующие конкретизации шаблона
- 16. Passport.js практически для простого входа
- 17. MySQL из командной строки - могу ли я практически использовать LOCK?
- 18. Объединить практически две таблицы mysql
- 19. Практически использовать # ifdef для компиляции библиотеки без определенных функций?
- 20. Использовать родителя как отправителя события
- 21. Как использовать события с bodymovin.js
- 22. Как использовать события в ChromeWorker?
- 23. Как повторно использовать события JQuery?
- 24. Как использовать события в socket.io?
- 25. Как использовать события nightmarejs page
- 26. Как использовать события в yii2?
- 27. Как использовать события модели Geddy
- 28. Использование функций класса класса практически
- 29. Как я могу запустить сервер рельсов практически?
- 30. Как практически настроить контекстное меню IE?
OnClick кажется довольно универсальным. Можете быть более конкретными? –
Хорошо, забудьте эту часть. Я прошу как можно более простой пример, чтобы показать, как события работают на их простейшем пути. Я понимаю, что такое событие, мне просто нужно посмотреть, как он работает .Net – Johnny