比较两个类似的对象,以验证平等

问题描述:

我试图按位克隆对象进行比较,以其父检查使用的变化:比较两个类似的对象,以验证平等

If Not objCP.Equals(objCPClone) Then 
    'do something 
End If 

,它总是在创建克隆后,如不等于甚至立即进行比较。

他们应该如何比较以检查变化?

覆盖Equals方法(以及沿途的GetHashCode)实际检查所有必要字段或属性是否相等。默认实现(从Object继承)只是检查引用是否相同(即它们是否指向相同的对象)。

和Massimiliano Peluso一样,你必须重写你的类的Equal方法,否则相等将基于CLR规则,在这种情况下,克隆不能等于它的原始值(取决于你是否使用值类型或者引用类型,或者类的属性类型)。