具有三个Int16值的C#GetHashCode?
我在C#的哈希映射中使用了这个函数,就像类“Dictionary”一样。
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运算符。
您也可以使用XOR运算符将其他变量合并到您的方法中。
链接地址: http://www.djcxy.com/p/39769.html