我们假设我们在C#中有double
值。
GetHashCode()
是否可能在不同的计算机/窗口/架构上为此double
返回不同的整数值?
public unsafe override int GetHashCode() {
double d = m_value;
if (d == 0) {
// Ensure that 0 and -0 have the same hash code
return 0;
}
long value = *(long*)(&d);
return unchecked((int)value) ^ ((int)(value >> 32));
}