2012-01-17 70 views
0

我試圖按位克隆對象進行比較,以其父檢查使用的變化:比較兩個類似的對象,以驗證平等

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

,它總是在創建克隆後,如不等於甚至立即進行比較。

他們應該如何比較以檢查變化?

回答

2

覆蓋Equals方法(以及沿途的GetHashCode)實際檢查所有必要字段或屬性是否相等。默認實現(從Object繼承)只是檢查引用是否相同(即它們是否指向相同的對象)。

0

和Massimiliano Peluso一樣,你必須重寫你的類的Equal方法,否則相等將基於CLR規則,在這種情況下,克隆不能等於它的原始值(取決於你是否使用值類型或者引用類型,或者類的屬性類型)。