可能重复:
如何在“==”运算符重载中检查空值,而不会无限递归?
如何在“==”运算符重载中检查空值,而不会无限递归?
当我为对象重载==运算符时,通常会编写类似于以下内容的代码:
public static bool operator ==(MyObject uq1, MyObject uq2) {
if (((object)uq1 == null) || ((object)uq2 == null)) return false;
return uq1.Field1 == uq2.Field1 && uq1.Field2 == uq2.Field2;
}
如果您不将其向下转换为对象,该函数将递归自身,但我不禁想知道是否有更好的方法?