bool と int では機能しないと言うのはなぜですか
int sign = (op == "+" ?? 1 : -1);
代わりに if ... then を使用する必要がありますか?
bool と int では機能しないと言うのはなぜですか
int sign = (op == "+" ?? 1 : -1);
代わりに if ... then を使用する必要がありますか?
これは無効な構文です。
条件演算子は単一の ?
.
正しい構文は
int sign = (op == "+" ? 1 : -1);
疑問符が 1 つだけ付いています。
2 つの疑問符を含む構文はNull 合体演算子に使用されますが、式には条件演算子が必要です
??
null 合体演算子です。op == "?"
ブール値を返す式です。
探しているのは、条件演算子int sign = (op == "+" ? 1 : -1);
を使用するです。
条件演算子 (三項演算子とも呼ばれます) に必要な疑問符は 1 つだけです。
int sign = (op == "+" ? 1 : -1);
また、(文字列がどこから来るかに応じて)チェックする必要があります
string op = "+";
int sign = ((op == "+") ? 1 : op.Length == 0? 0:-1);
編集:null オプションのチェック
int sign = (String.IsNullOrEmpty(op) ? 0 : (op == "+") ? 0 : -1);