【发布时间】:2012-06-02 07:53:24
【问题描述】:
我正在将此函数用于 C# 哈希映射中的一个键,例如类“字典”。
x、y 和 z 是 Int16。
public override int GetHashCode()
{
return (x << 16) | (UInt16)y;
}
如何将其扩展到使用所有 3 个变量?
请参阅What is the best algorithm for an overridden System.Object.GetHashCode?,了解更一般的情况,其中包含任意数量、任意类型的变量。
【问题讨论】:
-
请,请,请,不要使用公认的答案。使用上面重复问题中的答案!接受的问题无穷无尽(趋于0,趋于0xffff...,不同对象的相同哈希,不平衡的哈希等)。
-
对于一个 Int32 中的三个 Int16,不同对象的代码是否相同?
标签: c# hash dictionary hashmap gethashcode