[英]Does c# have the same issues like Java with equals and gethashcode()?
c#是否與Java with equals和gethashcode有相同的問題?
問題如: http : //onjava.com/pub/a/onjava/2006/09/13/dont-let-hibernate-steal-your-identity.html
如果你的意思是在繼承方面很難定義平等,是的。
但是,.NET具有IEqualityComparer<T>
接口,該接口經常用於相等和散列 - 用於諸如Dictionary<TKey, TValue>
容器。 幾乎框架中需要相等/散列的所有內容都允許行為由IEqualityComparer<T>
指定,這意味着如果類型本身給出的形式不適合您的需要,您可以表達您想要的任何相等概念。
不確定你說的是哪些問題,因為你有點模糊......
但是,如果你的意思是你應該
有
(如果你不想編譯器警告,或者在你的代碼可能是意外的行為)來覆蓋GetHashCode
,當你重寫Equals
,然后是。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.