Max*_*Max 15 .net c# hash portability
我使用C#4.0并通过调用获取字符串哈希:
"my string".GetHashCode()
Run Code Online (Sandbox Code Playgroud)
此调用生成的代码存储在数据库中以供将来使用.此哈希码用于查找字符串的某个子集,然后进行相等比较.
问题是:
Mic*_*tta 19
来自MSDN:
GetHashCode方法的默认实现不保证不同对象的唯一返回值.此外,.NET Framework不保证GetHashCode方法的默认实现,并且它返回的值在不同版本的.NET Framework之间是相同的.因此,此方法的默认实现不得用作散列目的的唯一对象标识符.
所以不,你不能假设产生的价值GetHashCode是稳定的.这不仅仅是理论上的 - 我们已经看到了过去的价值变化.
如果你想要一个稳定的哈希,你必须自己生成它.
| 归档时间: |
|
| 查看次数: |
1948 次 |
| 最近记录: |