具有三个 Int16 值的 C# GetHashCode
本文关键字:Int16 值的 GetHashCode 三个 | 更新日期: 2023-09-27 18:35:32
我正在将此函数用于 C# 哈希映射中的键,例如类"字典"。
x、y 和 z 是 Int16。
public override int GetHashCode()
{
return (x << 16) | (UInt16)y;
}
我怎样才能将其扩展到使用所有 3 个变量?
请参阅被覆盖的 System.Object.GetHashCode 的最佳算法是什么?,了解具有任意数量、任何类型的变量的更一般情况。
对于任何类型的三个变量 x、y、z,标准方法如下:
return x.GetHashCode() ^ y.GetHashCode() ^ z.GetHashCode();
^ 是异或运算符。
您也可以使用 XOR 运算符将其他变量合并到方法中。