比较两个类似对象以验证相等性

时间:2012-01-17 14:26:12

标签: .net vb.net object

我正在尝试将按位克隆对象与其父对象进行比较以使用以下方法检查更改:

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

并且在创建克隆后它甚至会立即比较为不相等。

如何比较它们以检查更改?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

与Massimiliano Peluso一样,你必须覆盖你的类的Equal方法,否则相等将基于CLR规则,在这种情况下,克隆不能等于它的原始(取决于你是否使用值类型或例如,引用类型或类所具有的属性类型。