Проверка был ли изменён экземпляр класса после определённого момента - C#

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

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

Дня доброго вам, и заслуженных результатов работы. Ребят, выведите из ступора Язык C# При работе с экземплярами класса происходят изменения значений его полей. Нужно иметь возможность проверить, были ли произведены изменения после какого-то момента или нет. Добавлять флаг типа IsChanged и потом его втыкать во все методы класса слишком черевато ошибками в коде (полюбой гдето забудется). Ещё как вариант во все поля засунуть get set и в них добавить этот флаг... А может можно в экземпляре класса хранить экземпляр этого же класса, с которым при необходимости в дальшнейшем? будем сверяться. Ступор в том что не совсем понимаю как это сделать, а точнее как засунуть создание такой вот "резервной копии" в конструктор. (Вопрос этики: Пока сидишь работаешь, иногда на пустом месте возникает ступор, и в таком случаее спрашиваешь у соседа, если он есть, он с улыбкой ответит что да, "2+2=4 ты чего забыл чтоли?" Стоит ли спрашивать вопросы на формуе, не сильно долго думая над ними, но считая что ответ какой-то простой, но просто вылетел из головы? или всё же не стоит так поступать, а посидеть и подумать ещё?)

Решение задачи: «Проверка был ли изменён экземпляр класса после определённого момента»

textual
Листинг программы
  1.   class Test
  2.     {
  3. private bool isChanged = false;
  4.  
  5. private String var1;//несколько переменных для примера
  6. private Int32 var2;//несколько переменных для примера
  7. //private Dictionary<String, String> Var3;//несколько переменных для примера - это реализуется другим способом, предложенный не подходит
  8.  
  9.  
  10. public String Var1
  11. {
  12. get {return var1;}
  13. set
  14. {
  15. if(var1!=value)
  16. {
  17. isChanged = true;
  18. var1 = value;
  19. }
  20. }
  21. }
  22.  
  23. public Int32 Var2
  24. {
  25. get {return var2;}
  26. set
  27. {
  28. if(var2!=value)
  29. {
  30. isChanged = true;
  31. var2 = value;
  32. }
  33. }
  34.  
  35. public bool IsChanged
  36. {
  37. get
  38. {
  39. bool result = isChanged;
  40. isChanged = false;
  41. return result;
  42. }
  43. }
  44.  
  45.  
  46.         public Test(String InputVar)//Обычный конструктор
  47.         {
  48.             this.Var1 = InputVar;//эти изменения уже отследяться, т.к.
  49.             this.Var2 = 13;        //поле для хранения информации об изменениях доступно сразу
  50.         }
  51.  
  52. }

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


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

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

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

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

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

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