假设我有一个类似的课程:
class Test
{
string asd;
int dsa;
}
稍后,我创建此类的实例,然后它可能会更改数据成员的值 我需要一个简单的比较方法,而不需要比较所有的班级成员 这样的事情:
Test t = new Test();
t.asd = "asd";
SOMETHING SMTH = GetSOMETHINGof(t);
a.dsa = 3;
if (GetSOMETHINGof(t) != SMTH)
//object modified
也许有人知道可用于此的内置东西? 我知道我可以实现Equal等,但这不是我想要的。班级太多,成员也很多 我使用C#和.net 4.0
答案 0 :(得分:1)
按Greg Finzer比较.NET Objects 1.4.2.0 http://www.nuget.org/packages/CompareNETObjects
答案 1 :(得分:1)
添加额外属性以保持对象的状态:
public class A
{
public bool HasChanged { get; set; }
object _Value;
public object Value
{
get
{
return _Value;
}
set
{
HasChanged = value != _Value;
_Value = value;
}
}
public A(object _value)
{
_Value = _value;
HasChanged = false;
}
}
并使用它:
A a = new A(5);
Console.WriteLine(a.HasChanged); //false
a.Value = 6;
Console.WriteLine(a.HasChanged); //true
a.HasChanged = false;
Console.WriteLine(a.HasChanged); //false