当代码命中此函数时,我会得到一个System.StackOverFlowException。
其中stringtype type是用户定义的tupe,等于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));
}发布于 2013-08-12 22:09:57
这
if (leftHand == rightHand)更改为
if (object.ReferenceEquals(leftHand, rightHand))您可能重新定义了==操作符来调用Equals。
我希望您不要使用string中的隐式操作符来创建StringType,因为否则
if ((leftHand == "0") || (rightHand == "0"))也可能出于同样的原因而自称。
很可能
if ((leftHand.myValue == "0") || (rightHand.myValue == "0"))那就更好了。
https://stackoverflow.com/questions/18189123
复制相似问题