谁能解释一下这个重载是什么意思?
public static bool operator ==(Shop lhs, Shop rhs)
{
if (Object.ReferenceEquals(lhs, null))
{
if (Object.ReferenceEquals(rhs, null))
{
return true;
}
return false;
}
return lhs.Equals(rhs);
}
我从未见过 Object.ReferenceEquals 重载
最佳答案
此重载旨在比较 Shop
的两个实例。它使用 Object.ReferenceEquals
来确定其中一个实例是否为 null
。
它不能使用 lhs == null
或 rhs == null
,因为这将再次调用 operator ==
并创建无限递归,导致一个 StackOverflowException
。
如果两个实例都为 null
,则返回 true(因为它们相等)。
如果只有一个实例为 null
,则返回 false(因为它们不相等)。
如果两个实例都不为 null
,则返回 Shop
的 Equals
实现的结果。
关于c# - 这个过载是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34736588/