0

我在这里浏览了 IEqualityComparer 示例 我不明白需要使用 Bitwise Or 来满足第二个条件

if (b2 == null && b1 == null)
   return true;
else if (b1 == null | b2 == null)
   return false;

为什么需要这样的条件?

4

1 回答 1

1

如果两者都为空,则第一个条件返回真(相等)。

当你到达第二个条件时,它已经确定它们不都是空的(否则第一个条件会为真。)

因此,在第二种情况下,如果其中一个为空,则意味着其中只有一个为空。如果一个为空而另一个不为空,则它们不相等。

于 2017-06-01T20:04:16.217 回答