代码达到此功能时,我得到了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"))
会更好。