G
GTi
I'm trying to build a class that can track changes to itself.
Class MyClass
{
public int value1=0;
public int value2=0;
private int oldvalue1=0;
private int oldvalue2=0;
public void WhatIsChanged()
{
if(oldvalue1!=value1) Console.WriteLine("value1 is changed");
if(oldvalue2!=value2) Console.WriteLine("value2 is changed");
oldvalue1=value1;
oldvalue2=value2;
}
}
class myprogram
{
MyClass nn = new MyClass()
nn.value1=2;
nn.WhatIsChanged();
}
But there MUST be a simpler way of doing this?
So if I use MemberwiseClone(); will it be like?
Class MyClass
{
public int value1=0;
public int value2=0;
private oldvalues=null;
MyClass()
{
oldvalues=(MyClass)this.MemberwiseClone();
}
public void WhatIsChanged()
{
if(oldvalues.value1!=this.value1) Console.WriteLine("value1 is
changed");
if(oldvalues.value2!=this.value2) Console.WriteLine("value2 is
changed");
oldvalues=(MyClass)this.MemberwiseClone();
}
}
class myprogram
{
MyClass nn = new MyClass()
nn.value1=2;
nn.WhatIsChanged();
}
But this don't work!
Class MyClass
{
public int value1=0;
public int value2=0;
private int oldvalue1=0;
private int oldvalue2=0;
public void WhatIsChanged()
{
if(oldvalue1!=value1) Console.WriteLine("value1 is changed");
if(oldvalue2!=value2) Console.WriteLine("value2 is changed");
oldvalue1=value1;
oldvalue2=value2;
}
}
class myprogram
{
MyClass nn = new MyClass()
nn.value1=2;
nn.WhatIsChanged();
}
But there MUST be a simpler way of doing this?
So if I use MemberwiseClone(); will it be like?
Class MyClass
{
public int value1=0;
public int value2=0;
private oldvalues=null;
MyClass()
{
oldvalues=(MyClass)this.MemberwiseClone();
}
public void WhatIsChanged()
{
if(oldvalues.value1!=this.value1) Console.WriteLine("value1 is
changed");
if(oldvalues.value2!=this.value2) Console.WriteLine("value2 is
changed");
oldvalues=(MyClass)this.MemberwiseClone();
}
}
class myprogram
{
MyClass nn = new MyClass()
nn.value1=2;
nn.WhatIsChanged();
}
But this don't work!