有没有简单的方法来检查任何类实例进行修改?

时间:2012-09-14 06:01:48

标签: c# .net object compare instance

假设我有一个类似的课程:

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

2 个答案:

答案 0 :(得分:1)

答案 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