繁体   English   中英

Visual Studio调试器崩溃

[英]Visual Studio debugger crash

所以我在Visual Studio中遇到一些奇怪的错误。 调试器崩溃(我认为)。 这是它崩溃的功能。 这适用于C#中的通用BST,其中==运算符被重载以在节点之间添加简单的比较。

    public static bool operator ==(Node<T> lhs, Node<T> rhs)
    {
        if ((lhs == null) || (rhs == null))
        {
            return false;
        }

        if((lhs.Data).CompareTo(rhs.Data) == 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

它在此行崩溃:

if ((lhs == null) || (rhs == null))

调试后,lhs确实为空,一旦开始比较,它就会挂断,然后显示以下消息:

在此处输入图片说明

然后调试会话本身就结束了。

我不太了解,因为为了尝试找出我的代码中的问题,我正在尝试调试,但是随后发生此错误,会话本身就结束了。 我以前从未见过。

您将递归调用==运算符。 使用if (ReferenceEquals(lhs, null) || ReferenceEquals(rhs, null))可以避免这种情况。

或者,使用C#7模式匹配: if (lhs is null || rhs is null)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM