C#我们如何使用Object.GetHashCode()

时间:2016-01-16 12:38:12

标签: c# object hash hashcode equality

当然,hascode在hastables和集合中使用但是那个:

class TwoDPoint : System.Object{

   public readonly int x, y;

   //...left out some code

   public override int GetHashCode(){
      return x ^ y;
   }
}

来源:https://msdn.microsoft.com/en-us/library/ms173147(VS.80).aspx
上面的剪辑指示我使用以下句子:

  

您不应该假设相等的哈希码意味着对象相等。

来源:https://msdn.microsoft.com/de-de/library/system.object.gethashcode(v=vs.110).aspx

我想知道在两个哈希码匹配后我们是否应该始终检查对象是否相等。 请考虑以下两点:

P1.x = 2; P1.y = 4;哈希= 16

P2.x = 4; P2.y = 2;哈希= 16

  • 如果我在将项目插入哈希表之前只检查哈希值 这不是一个大问题吗?
  • 或许是这个功能 只是用来提供更高效的检查方式" simmilarity" 但是在比赛结束后总是需要进行平等检查?
  • 或者我应该 不在乎,只是使用哈希码,并认为它并不重要?

0 个答案:

没有答案