system.stackoverlowexception无法计算表达式,因为当前线程处于堆栈溢出状态
本文关键字:线程 前线 于堆 状态 栈溢出 因为 stackoverlowexception 计算 表达式 system | 更新日期: 2023-09-27 18:27:25
当代码命中此函数时,我得到一个System.StackOverFlowException。
其中,stringtype是用户定义的元组,等于类型库中的函数int。
public static bool Equals(StringType leftHand, StringType rightHand)
{
if (leftHand == rightHand)
{
return true;
}
if ((leftHand == "0") || (rightHand == "0"))
{
return false;
}
return (leftHand.myValue.Equals(rightHand.myValue) && leftHand.myState.Equals(rightHand.myState));
}
此
if (leftHand == rightHand)
更改为
if (object.ReferenceEquals(leftHand, rightHand))
您可能将==
运算符重新定义为调用Equals
。
我希望你不要有一个隐含的运算符,从string
创建StringType
,因为否则
if ((leftHand == "0") || (rightHand == "0"))
可能会因为同样的原因而自称。
可能是
if ((leftHand.myValue == "0") || (rightHand.myValue == "0"))
会更好。