<分区>
给定相同的 GUID Object.GetHashCode
生成不同的哈希码,但 Object.Equals
显示相同的 GUID 等于。
整个GUID:
不同的哈希码:
等于 ==
true
:
显然,两者都是 System.Guid
:
即使是相同的 GUID,它们也是不同的值,因为它们是从两个来源反序列化的。
这是预期的行为吗?
标签 c# .net guid hashcode .net-4.6.2
<分区>
给定相同的 GUID Object.GetHashCode
生成不同的哈希码,但 Object.Equals
显示相同的 GUID 等于。
整个GUID:
不同的哈希码:
等于 ==
true
:
显然,两者都是 System.Guid
:
即使是相同的 GUID,它们也是不同的值,因为它们是从两个来源反序列化的。
这是预期的行为吗?
最佳答案
您的测试不正确。在比较 .GetType().FullName
的最后部分,您查看的是 .Id
,但不是你在上面比较的是什么。
所以:问题在于具有 .Id
的任何类型,tags
和 existingTags
中的东西。查看 Equals
和 GetHashCode
。
关于c# - 相同的 GUID 可以产生不同的哈希码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44950756/
相关文章:
javascript - 在 DDL 中查找 optgroup 的值
.net - 您如何在托管 C++ 中处理 IDisposable?
c# - 关闭 C#/C++ DLLImport 或至少释放其堆内存?
guid - 对于给定的 GUID 和给定的机器 : can i determine if the guid was made on the machine?
c# - 为什么我不能在 lambda 表达式中使用 null 传播运算符?
C#VSTO : visual studio loads the workbook but not the worksheet
c# - ASP.Net:写文件 block ..HTTP文件上传简历