【发布时间】:2017-04-16 17:44:34
【问题描述】:
我有一个场景,我的服务器端代码在 x86 环境中运行,而客户端在 x64 环境中运行。问题正在发生,我们正在使用 String.GetHashCode() 来识别 HashTable 中的对象,因为“GetHashCode 的行为取决于它的实现,这可能会从公共语言运行时的一个版本更改为另一个版本。” -MSDN。我使用不安全代码从以下堆栈溢出问题创建 x86 等效 GetHashCode():Can I depend on the values of GetHashCode() to be consistent?。
我有几个问题:
- 是否建议将不安全的代码留在托管代码世界中。
- 如何将上述问题中的不安全代码转换为安全代码。
【问题讨论】:
-
为什么不让服务器 AddToHashTable 方法返回它在存储对象时生成的哈希码?
-
@Austin:感谢您的回复。我使用了您推荐的第一个解决方案。
标签: c# .net x86-64 gethashcode