当前位置:  开发笔记 > 编程语言 > 正文

这个重载是什么意思?

如何解决《这个重载是什么意思?》经验,为你挑选了1个好方法。

有人可以解释一下这个重载是什么意思吗?

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



1> René Vogt..:

此重载旨在比较两个实例Shop.它用于Object.ReferenceEquals确定其中一个实例是否null.
它不能使用lhs == nullrhs == null,因为这会再次调用operator ==并创建一个无限递归导致a StackOverflowException.

如果两个实例都null返回true(因为它们相等).
如果只有一个实例,null则返回false(因为它们不相等).
如果这两种情况都没有null它返回的结果Equals的执行Shop.


你也可以调用`(object)lhs == null`和`(object)rhs == null`来获得相同的效果
推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有