我試圖按位克隆對象進行比較,以其父檢查使用的變化:比較兩個類似的對象,以驗證平等
If Not objCP.Equals(objCPClone) Then
'do something
End If
,它總是在創建克隆後,如不等於甚至立即進行比較。
他們應該如何比較以檢查變化?
我試圖按位克隆對象進行比較,以其父檢查使用的變化:比較兩個類似的對象,以驗證平等
If Not objCP.Equals(objCPClone) Then
'do something
End If
,它總是在創建克隆後,如不等於甚至立即進行比較。
他們應該如何比較以檢查變化?
覆蓋Equals
方法(以及沿途的GetHashCode
)實際檢查所有必要字段或屬性是否相等。默認實現(從Object
繼承)只是檢查引用是否相同(即它們是否指向相同的對象)。
和Massimiliano Peluso一樣,你必須重寫你的類的Equal方法,否則相等將基於CLR規則,在這種情況下,克隆不能等於它的原始值(取決於你是否使用值類型或者引用類型,或者類的屬性類型)。