Проверка был ли изменён экземпляр класса после определённого момента - 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; //поле для хранения информации об изменениях доступно сразу } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д