关于.Net中通用字典中的引用类型键的快速问题

Jul*_*les 7 .net c# vb.net dictionary reference-type

我有一个可变类,我用它作为通用字典的关键.只有当它们的引用相等时,两个键才应该相等.根据我的阅读,在这种情况下,我不需要重写Equals,GetHashCode或实现IEqualityComparer.

它是否正确?

Ree*_*sey 16

是.System.Object中的默认比较操作使用引用相等性.如果您想要这种行为,默认值应该可以正常工作.

  • 虽然如果有人稍后添加这些覆盖,我会担心这种行为.哈希表中的桶将通过添加时对象的哈希值来计算.如果状态(因此哈希)发生更改,对Contains()和Remove()等的调用将随后失败. (4认同)
  • 除非你自己覆盖它们,否则密封它们,并使你的实现称为基础. (3认同)