我需要使用我编写的类作为键的类型Dictionary
我在 MSDN 上阅读了有关默认构造函数的文档Dictionary
Dictionary<TKey, TValue>
需要一个相等实现来确定键是否相等。此构造函数使用默认的泛型相等比较器EqualityComparer<T>.Default
. 如果 typeTKey
实现了System.IEquatable<T>
泛型接口,则默认相等比较器使用该实现。或者,您可以IEqualityComparer<T>
使用接受比较器参数的构造函数来指定通用接口的实现。
这使我认为我唯一要做的就是让我的课程用于关键实现System.IEquatable<T>
但是我很惊讶System.IEquatable<T>
没有HashCode()
方法。
那么以这种方式创建的字典会使用哈希码吗?如果是,它来自哪里?否则,我的字典是否会有恒定成本访问操作(我认为没有哈希码是无法实现的)