我有两个类,分别是Person
和Spouse
,该方法检查配偶之间的相等性:
private bool SpousesSame(Person p1, Person p2)
{
bool tempFlag = false;
if (p1 != null && p2 != null && p1.Spouse != null && p2.Spouse != null && p1.Spouse == p2.Spouse)
{
tempFlag = true;
}
return tempFlag;
}
如您所见,有很多空检查(
Person
也可以是null
)。可以简化吗?
编辑:
当两个Person都为null时,我也尝试返回
false
。 最佳答案
private bool SpousesSame(Person p1, Person p2)
{
return p1?.Spouse != null && p1.Spouse == p2?.Spouse;
}
如果
p1?.Spouse
或p1
为null,则p1.Spouse
将为null,在这种情况下,将返回false
。否则,我们知道
p1.Spouse
不为null,因此可以将其与p2?.Spouse
进行比较。