首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >String.GetHashCode()返回不同的值

String.GetHashCode()返回不同的值
EN

Stack Overflow用户
提问于 2010-12-16 22:47:32
回答 2查看 13.4K关注 0票数 34

为什么GetHashCode()为同一个字符串返回不同的值?我无法描述如何复制这一点,但相信这不是一个实际的笑话,以下两句话是在两个不同的时间从我的手表窗口传来的:

代码语言:javascript
运行
复制
"DDD.Events.Application.ApplicationReferenceCreated".GetHashCode() -1386151123 int
"DDD.Events.Application.ApplicationReferenceCreated".GetHashCode() 1858139950 int

怎么会发生这种事?

我不知道这是否有帮助,但是我在VS 2010的.NET 4.0上运行,我正在调试一个NServiceBus应用程序。

更新:

如果您想知道我为此做了什么,请看下面这个线程:在运行x86模式时,可以生成x64哈希值吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-16 22:59:53

根据文档

如果两个字符串对象相等,则GetHashCode方法返回相同的值。但是,对于每个唯一的字符串值,不存在唯一的哈希代码值。不同的字符串可以返回相同的哈希代码。

因此,必须发挥其他一些作用,这两个呼吁,以提供不同的结果。一种理论是,您在调用之间切换平台,从x86切换到x64,反之亦然。

票数 22
EN

Stack Overflow用户

发布于 2020-04-16 05:15:32

你有可能从某个地方复制了这个字符串吗?

我也有同样的问题。我复制了值,不知怎么的,BOM头在第一个位置上是不可见的。

试着检查长度,您已经看到了一个差异。另外,你也可以逐字节检查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4466132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档