Использование делегатов и событий при смене поля "телефон" объекта - C#

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

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

У меня есть некий класс

Person

, где есть такие поля, как

"Имя"

,

"Фамилия"

,

"Телефон"

. Также в другом классе

Database

есть методы, которые добавляют объекты класса Person в list, осуществляют поиск по имени, фамилии и телефону, возвращая либо список с подходящими объектами, либо сами объекты.

Вопрос

: как с помощью

событий и делегатов

изменить

телефон (phone)

найденного объекта? Где прописывать делегат и событие, в каком классе? Вот как это выглядит в Program:
Листинг программы
  1. var result = dataBase.SearchByPhone("8956535263"); // осуществление поиска по телефону, result - найденный объект
  2. result.Phone = "8543242234"; //изменение телефона найденного объекта через свойства

Решение задачи: «Использование делегатов и событий при смене поля "телефон" объекта»

textual
Листинг программы
  1. //Rextester.Program.Main is the entry point for your code. Don't change it.
  2. //Compiler version 4.0.30319.17929 for Microsoft (R) .NET Framework 4.5
  3.  
  4. using System;
  5.  
  6. namespace Rextester
  7. {
  8.     public class Program
  9.     {
  10.         public static void Main(string[] args)
  11.         {
  12.             var test=new Test();
  13.             test.ChangeEvent+=(e)=>{
  14.                 Console.WriteLine("Элемент с индексом {0} был изменен",e);
  15.             };
  16.            
  17.             var number=3;
  18.             var find=test.Search(number);
  19.             if(find==-1)
  20.             {
  21.                 Console.WriteLine("Элемент не найден!");
  22.                 return;
  23.             }
  24.             else
  25.                 Console.WriteLine("Элемент имеет индекс {0}",find);
  26.             test.Print();
  27.            
  28.            
  29.             Action<int,int> act=test.Do;
  30.             act(find,777);
  31.             test.Print();
  32.            
  33.            
  34.         }
  35.     }
  36.    
  37.     class Test
  38.     {
  39.         private int[]arr={1,2,3,4,5};
  40.        
  41.         public int Search(int element)
  42.         {
  43.             return Array.IndexOf(arr,element);
  44.         }
  45.        
  46.        public  event Action<int> ChangeEvent;
  47.        
  48.         public void Do(int element,int value)
  49.         {
  50.             if(ChangeEvent!=null)
  51.             {
  52.                 arr[element]=value;
  53.                 ChangeEvent(element);
  54.             }
  55.         }
  56.         public void Print()
  57.         {
  58.             Console.WriteLine(string.Join(" ",arr));
  59.         }
  60.        
  61.        
  62.     }
  63. }

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


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

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

5   голосов , оценка 3.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут