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

标签 c# .net x86-64 gethashcode

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

我有几个问题:

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

最佳答案

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

关于c# - 为 String.GetHashCode() 创建重载以在 x86 和 x64 环境中返回相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5319209/

相关文章:

.net - 将ironpython应用程序打包成.exe和安装程序

linux - NASM:将指针从寄存器复制到 .data 中的缓冲区

c - C结构如何传递给汇编函数?

windows - 为什么Windows在新的x64进程中使用RCX、RDX作为指针,与新创建的32位进程中的EAX、EBX不同?

c# - .net SiteMap菜单显示

c# - 为什么 ValueTuple 不能是常量?

javascript - 强制浏览器使用特定分辨率

c# - 当所有行的高度超过DataGridview的视觉高度时,DataGridview的ScrollBars会Crash

c# - 在重新填充 IDisposable 对象之前是否必须处理它们?

带有忽略大小写或 tolower 的 C# 表达式树