Mar*_*ler 19 c# string .net-4.0 gethashcode
为什么GetHashCode()为同一个字符串返回不同的值?我无法描述如何复制这个,但相信这不是一个恶作剧,以下两行来自我的观察窗口,分别是两次:
"DDD.Events.Application.ApplicationReferenceCreated".GetHashCode() -1386151123 int
"DDD.Events.Application.ApplicationReferenceCreated".GetHashCode() 1858139950 int
Run Code Online (Sandbox Code Playgroud)
怎么会发生这种情况?
我不知道这是否有帮助,但我在VS 2010中运行.NET 4.0并且我正在调试NServiceBus应用程序.
更新:
如果你想知道我最后做了什么,看看这个线程:你能在x64模式下运行时生成x86哈希值吗?
Pet*_*old 17
根据文件:
如果两个字符串对象相等,则GetHashCode方法返回相同的值.但是,每个唯一字符串值都没有唯一的哈希码值.不同的字符串可以返回相同的哈希码.
因此,必须在两个调用中发挥一些其他效果才能产生不同的结果.一种理论是您在调用之间切换平台,从x86到x64,反之亦然.