相同的 double 的 GetHashCode() 会导致不同的整数吗?

Can GetHashCode() for the same double result in a different integer?

假设我们在 C# 中有一个 double 值。

是否有可能 GetHashCode() 可能 return 此 double 在不同 computers/windows/architectures 上的不同整数值?

    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));
    }

Object.GetHashCode Method 说:

The default implementation of the GetHashCode method does not guarantee unique return values for different objects. Furthermore, the .NET Framework does not guarantee the default implementation of the GetHashCode method, and the value it returns will be the same between different versions of the .NET Framework. Consequently, the default implementation of this method must not be used as a unique object identifier for hashing purposes.