Событие при изменении переменной - 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();
}
}
}