使用 C# 将 if 条件转换为三元

Ess*_*sex -5 c# ternary

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

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

我有以下条件:

if (!myField.IsNullOrNa())
    {
        messageErreur += myField.IsDecimalWithMessage(nameof(myField));
    }
Run Code Online (Sandbox Code Playgroud)

我想写:

 messageErreur += !myField.IsNullOrNa() ? myField.IsDecimalWithMessage(nameof(myField)) : 
Run Code Online (Sandbox Code Playgroud)

我必须写什么作为替代?

oer*_*ens 7

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

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;
Run Code Online (Sandbox Code Playgroud)