-
3 votesanswersviews
如何在重写GetHashCode()的类型上使用Object.GetHashCode()
我有一个实现IEquatable <>的类A,使用它的字段(例如,A.b和A.c)来实现/重写Equals()并覆盖GetHashCode(),并且99%的时候一切正常 . A类是层次结构(B类,C类)的一部分,它们都从接口D继承;它们都可以存储在字典词典中,因此当它们都带有自己的默认Equals()/ GetHashCode()时很方便 . 但是,在构建A时,有时需要做一些工作来获... -
126 votesanswersviews
GetHashCode在.NET中的IEqualityComparer <T>中的作用是什么?
我试图理解IEqualityComparer接口的GetHashCode方法的作用 . 以下示例来自MSDN: using System; using System.Collections.Generic; class Example { static void Main() { try { BoxEqualityComparer boxEqC =... -
-1 votesanswersviews
IEqualityComparer实现中GetHashCode和Equals之间的关系是什么? [重复]
这个问题在这里已有答案: Why is it important to override GetHashCode when Equals method is overridden? 12个答案 IEqualityComparer GetHashCode being called but Equals not 4个答案 我有一个继承自B类并实现 IEqualityComparer<... -
15 votesanswersviews
使用IEqualityComparer和Equals / GethashCode Override有什么区别?
当我使用字典有时我必须更改默认的等于意思,以便比较键 . 我看到如果我在键的类上重写Equals和GetHashCode,或者我创建了一个实现IEqualityComparer的新类,我有相同的结果 . 那么使用IEqualityComparer和Equals / GethashCode Override有什么区别?两个例子: class Customer { public string ...