如何使用c# ??对于这个表达式

本文关键字:于这个 表达式 何使用 | 更新日期: 2023-09-27 18:17:51

为什么说不能像

那样使用bool和int
int sign = (op == "+" ?? 1 : -1);

我需要使用if…然后呢?

如何使用c# ??对于这个表达式

您需要使用条件运算符?::

int sign = (op == "+" ? 1 : -1);

双问号是空合并操作符,它的作用完全不同。

语法无效。

条件运算符使用单个 ?

因为正确的语法是

int sign = (op == "+" ? 1 : -1);
只有一个问号的

带两个问号的语法用于空合并运算符,而表达式需要条件运算符

??为空合并算子。op == "?"是一个返回布尔值的表达式。

您正在寻找int sign = (op == "+" ? 1 : -1);,它使用条件运算符。

条件运算符(也称为三元运算符)只需要一个问号。

int sign = (op == "+" ? 1 : -1);

您还应该检查(取决于字符串来自何处)检查op是否被分配了字符串

 string op = "+";
    int sign = ((op == "+") ? 1 : op.Length == 0? 0:-1);

编辑:检查null选项

int sign = (String.IsNullOrEmpty(op) ? 0 : (op == "+") ? 0 : -1);