使用 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;
我想使用三元运算符来分解 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;