为String.GetHashCode()创建重载以在x86和x64环境中返回相同的值

时间:2011-03-15 23:19:17

标签: c# .net x86-64 gethashcode

我有一个场景,我的服务器端代码在x86环境中运行,而客户端在x64中运行。我们正在使用String.GetHashCode()来识别HashTable中的对象,因为“GetHashCode的行为依赖于它的实现,这可能会从公共语言运行库的一个版本变为另一个版本。” - MSDN。我使用不安全的代码从以下堆栈溢出问题创建x86等效的GetHashCode():Can I depend on the values of GetHashCode() to be consistent?

我有几个问题:

  1. 建议在托管代码世界中保留不安全的代码。
  2. 如何将上述问题中的不安全代码转换为安全代码。

1 个答案:

答案 0 :(得分:1)

创建和扩展方法,为提供的字符串生成HashCode,即使客户端和服务器在不同的环境(x86或x64)中执行,它也是相同的。