字符串的GetHashCode()方法可以返回零吗?

Rob*_*obV 3 .net hashcode

当使用该GetHashCode()方法获取字符串的哈希码时,它是否有可能返回零或者使用的算法是否保证?

我问的原因是我有一个用例,我需要为空字符串发明一个哈希,而我正在考虑使用零而不是散列一些常量字符串.如果我这样做,我有可能发生碰撞(除非碰撞总是可能的事实)

shf*_*301 5

没有办法明确回答这个问题.String.GetHashCode()的行为被记录为未定义,并且可以在框架版本之间进行更改,并且在32位和64位系统之间有所不同.

如果您选择其他值,则可能会发生碰撞.零将是一个非常合理的默认值.

Nullable.GetHashCode() ,如果它储存空值,返回零的哈希码有一些先例返回0.