我有两个类,分别是PersonSpouse,该方法检查配偶之间的相等性:

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?.Spousep1为null,则p1.Spouse将为null,在这种情况下,将返回false

否则,我们知道p1.Spouse不为null,因此可以将其与p2?.Spouse进行比较。

10-06 02:14