Событие при изменении переменной - C#
Формулировка задачи:
Добрый вечер, пытаюсь разобраться в теме события в C#. В связи с чем прошу помочь.
Во всех примерах событий, которые находил (книжка Шилтд, интернет), события активизируется заранее написанным методом, например так:
Можете ли привести пример, где событие в программе, допустим отслеживает значение переменной? и если эта переменная допустим станет =5, отобразится событие Console.WriteLine("Произошло событие");
Листинг программы
- delegate void MyEventHandler();
- class MyEvent { // класс содержащий событие
- public event MyEventHandler SomeEvent;
- public void OnSomeEvent() { // метод вызывается для запуска события
- if(SomeEvent != null)
- SomeEvent();
- }
- }
- class EventDemo {
- static void qq () {
- Console.WriteLine("Произошло событие");
- }
- static void Main() {
- MyEvent evt = new MyEvent();
- evt.SomeEvent += qq;
- evt.OnSomeEvent(); //запустить событие
- Console.ReadLine();
- }
- }
Решение задачи: «Событие при изменении переменной»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication28
- {
- class Program
- {
- class MyClass
- {
- public delegate void MyEventHandler(string message); //сигнатура обработчика, который можно привязать к событию.
- public event MyEventHandler SomeEvent=delegate { }; //собственно событие.
- int prop;
- public int MyProp
- {
- get
- {
- return prop;
- }
- set
- {
- prop = value;
- if (prop == 10)
- {
- SomeEvent("переменная = 10"); //тут мы генерируем событие
- }
- }
- }
- }
- static void Main(string[] args)
- {
- MyClass obj = new MyClass();
- obj.SomeEvent += x => Console.WriteLine(x);//тут подписались
- obj.MyProp = 10;//тут меняем свойство и событие генерируется
- Console.Read();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д