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

Convert if condition into ternary with C#

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

我知道过程:condition ? consequent : alternative

我有以下 if 条件:

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

我想写:

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

我必须写什么作为替代?

如果您只想在条件为真时更改值(如果不为真则不要更改),请不要添加 'alternative' 部分:

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

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

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;