.NET 4.x Генерация события при изменении свойства - C#

Узнай цену своей работы

Формулировка задачи:

Есть public static class DataProvider. Который явлчется поставщиком данных (он содержит коллекцию из другого класса) т.е. что то типа
 public static List<MyObj> Data;
у MyObj есть набор свойств к примеру
public int Age { get; set; }
. Необходимо сделать так что бы при изменении свойства Age вызывалось событие к которому можно прицепится из кода через статический класс поставщика данных, что то типа:
 DataProvider.OnChangeAge += myHandlerAgeChange;
. Сейчас у меня сделано так что изменять своство Age можно только через методы класса DataProvider типа ( DataProvider.ChangeAge(int id, int value) ; ). Как сделать более корректно ?

Решение задачи: «.NET 4.x Генерация события при изменении свойства»

textual
Листинг программы
class Program
{
    static void Main(string[] args)
    {
        DataProvider.Data[0].OnChangeAge += new MyObj.ChangeAge(Method);
        DataProvider.Data[0].Age = 34;
        Console.ReadKey();
    }
 
    static void Method()
    {
        Console.WriteLine("Change property Age.");
    }
 
}
 
static class DataProvider
{
    public static List<MyObj> Data = new List<MyObj> { new MyObj()};
}
 
public class MyObj
{
    public delegate void ChangeAge();
    public event ChangeAge OnChangeAge;
        
    private int _age;
    public int Age { get {return _age;}
        set { _age = value;  OnChangeAge(); }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5
Похожие ответы