【发布时间】:2014-09-05 22:03:52
【问题描述】:
这是我在类中对 == 和 != 运算符的实现。
public class MyClass
{
public int FirstField { get; set; }
public int SecondField { get; set; }
public static bool operator ==(MyClass first, MyClass second)
{
if (first == null && second == null)
return true;
else if (first == null || second == null)
return false;
else
{
if (first.FirstField == second.FirstField && first.SecondField == second.SecondField)
return true;
else
return false;
}
}
public static bool operator !=(MyClass first, MyClass second)
{
return !(first == second);
}
}
在代码中的其他地方,我有以下两个用于 == 和 != 比较的实例。
MyClass class1;
MyClass class2;
if (class1 == null || (class1 != null && class1 != class2) )
问题是,当上面的行被调用时,我在下一行得到一个 stackoverflow 异常。
if (first == null && second == null)
What am I doing wrong here?
【问题讨论】: