如何使用c# ??对于这个表达式
本文关键字:于这个 表达式 何使用 | 更新日期: 2023-09-27 18:17:51
为什么说不能像
那样使用bool和intint sign = (op == "+" ?? 1 : -1);
我需要使用if…然后呢?
您需要使用条件运算符?:
:
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);