我刚刚注意到,例如接口IEqualityComparer<T>
提供了public int GetHashCode(T obj)
。
我在另一个接口/类中更经常看到public int GetHashCode()
变体。为什么它是用输入参数设计的?我明白,在'with argument'情况下,返回值不会基于调用者对象,而是方法的参数。在我看来,唯一需要GetHashCode的是null对象,是吗?
最后一个问题:调用者对象(即GetHashCode方法的所有者)应该是什么?GetHashCode(obj):为什么在某些情况下它是用参数设计的?
谢谢!
UPD。最早从正确的答案标记为答案。非常感谢!
哦,可怜的我,我没有注意到这个观点,即使以接口的名义存在!谢谢 :) – pkuderov 2013-02-27 18:26:19