Проверка был ли изменён экземпляр класса после определённого момента - 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;        //поле для хранения информации об изменениях доступно сразу
        }
 
}

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


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

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

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