Проверка был ли изменён экземпляр класса после определённого момента - C#
Формулировка задачи:
Дня доброго вам, и заслуженных результатов работы.
Ребят, выведите из ступора
Язык C#
При работе с экземплярами класса происходят изменения значений его полей. Нужно иметь возможность проверить, были ли произведены изменения после какого-то момента или нет.
Добавлять флаг типа IsChanged и потом его втыкать во все методы класса слишком черевато ошибками в коде (полюбой гдето забудется).
Ещё как вариант во все поля засунуть get set и в них добавить этот флаг...
А может можно в экземпляре класса хранить экземпляр этого же класса, с которым при необходимости в дальшнейшем? будем сверяться. Ступор в том что не совсем понимаю как это сделать, а точнее как засунуть создание такой вот "резервной копии" в конструктор.
(Вопрос этики: Пока сидишь работаешь, иногда на пустом месте возникает ступор, и в таком случаее спрашиваешь у соседа, если он есть, он с улыбкой ответит что да, "2+2=4 ты чего забыл чтоли?" Стоит ли спрашивать вопросы на формуе, не сильно долго думая над ними, но считая что ответ какой-то простой, но просто вылетел из головы? или всё же не стоит так поступать, а посидеть и подумать ещё?)
Решение задачи: «Проверка был ли изменён экземпляр класса после определённого момента»
textual
Листинг программы
- class Test
- {
- private bool isChanged = false;
- private String var1;//несколько переменных для примера
- private Int32 var2;//несколько переменных для примера
- //private Dictionary<String, String> Var3;//несколько переменных для примера - это реализуется другим способом, предложенный не подходит
- public String Var1
- {
- get {return var1;}
- set
- {
- if(var1!=value)
- {
- isChanged = true;
- var1 = value;
- }
- }
- }
- public Int32 Var2
- {
- get {return var2;}
- set
- {
- if(var2!=value)
- {
- isChanged = true;
- var2 = value;
- }
- }
- public bool IsChanged
- {
- get
- {
- bool result = isChanged;
- isChanged = false;
- return result;
- }
- }
- public Test(String InputVar)//Обычный конструктор
- {
- this.Var1 = InputVar;//эти изменения уже отследяться, т.к.
- this.Var2 = 13; //поле для хранения информации об изменениях доступно сразу
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д