[英]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.