首页 > 解决方案 > 使用 C# 将 if 条件转换为三进制

问题描述

我想使用三元运算符来分解 if 条件。

我知道这个过程:condition ? consequent : alternative

我有以下if条件:

if (!myField.IsNullOrNa())
    {
        messageErreur += myField.IsDecimalWithMessage(nameof(myField));
    }

我想写:

 messageErreur += !myField.IsNullOrNa() ? myField.IsDecimalWithMessage(nameof(myField)) : 

我必须写什么作为替代?

标签: c#ternary

解决方案


如果您有多个字段要检查,只需创建一个基于条件(布尔值)返回字符串(或空)的小型辅助方法:

messageErreur += Check(!myField.IsNullOrNa(), myField.IsDecimalWithMessage(nameof(myField)); 
messageErreur += Check(myField.HasError(), myField.HasError(nameof(myField)); 

private string Check(bool condition, string message) => condition ? message : string.Empty;

推荐阅读