在这篇MSDN文章中,http://msdn.microsoft.com/en-us/library/ms132123.aspx介绍了Class Equalitycomparer并提供了一个例子。在比较盒子的示例中,它使用了以下类 -
class BoxSameDimensions : EqualityComparer<Box>
{
public override bool Equals(Box b1, Box b2)
{
if (b1.Height == b2.Height & b1.Length == b2.Length
& b1.Width == b2.Width)
{
return true;
}
else
{
return false;
}
}
public override int GetHashCode(Box bx)
{
int hCode = bx.Height ^ bx.Length ^ bx.Width;
return hCode.GetHashCode();
}
}
我不理解这行代码:int hCode = bx.Height ^ bx.Length ^ bx.Width;
有人可以解释一下吗?为什么要用异或运算符?