简化检查两个值是否均相等的情况

时间:2019-05-22 09:42:29

标签: c#

我正在尝试简化if语句,使其更具可读性, 逻辑检查xy的值是否不同于Undefined,如果不相等,则返回false。

bool IsBothMatch(MyClassX x, MyClassY y)
{
    if (y.MyEnumVal != MyEnum.Undefined &&
        x.MyEnumVal != MyEnum.Undefined)
    {
        if (x.MyEnumVal != y.MyEnumVal)
            return false;
    }

    return true;
} 

2 个答案:

答案 0 :(得分:3)

您可以将其压缩为一个语句:

bool IsBothMatch(MyClassX x, MyClassY y) {
  return x.MyEnumVal == MyEnum.Undefined
      || y.MyEnumVal == MyEnum.Undefined
      || x.MyEnumVal == y.MyEnumVal;
}

答案 1 :(得分:0)

如果要比较两个相似的类,则可以继承IEquatable<T>

您在课程上继承

public class MyClassX : IEquatable<MyClassX>
{

}

然后您可以比较两者

MyClassX.Equals(MyClassY);