Ben*_*dEg 1 c# hash types gethashcode
为什么GetHashCode
返回相同类型的不同值.如果我执行此代码:
Console.WriteLine(typeof(Guid).GetHashCode());
Run Code Online (Sandbox Code Playgroud)
在不同的应用程序中,我得到不同的哈希码.
如果我在不同的应用程序中多次执行以下语句:
Console.WriteLine("ABC".GetHashCode());
Run Code Online (Sandbox Code Playgroud)
我总是得到相同的哈希码.但为什么哈希码会改变System.Type
,但不是为了System.String
?
谢谢.
既不System.String
也不System.Type
保证持久化的散列码作为其合同的组成部分.System.String
在您的特定情况下恰好使用它的事实是一个不能依赖的实现细节.如果需要持久化或导出字符串的哈希值,请使用其他字符串哈希方法.坚持或导出关于类型的信息应该使用信息,如FullName
,AssemblyQualifiedName
和其他人,这取决于具体要求.