0

bool と int では機能しないと言うのはなぜですか

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

代わりに if ... then を使用する必要がありますか?

4

6 に答える 6

8

条件演算子 を使用する必要があります?::

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

二重の疑問符は、まったく異なることを行うnull 合体演算子です。

于 2013-06-09T20:57:12.210 に答える
3

これは無効な構文です。

条件演算子は単一の ?.

于 2013-06-09T20:56:58.570 に答える
3

正しい構文は

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

疑問符が 1 つだけ付いています。

2 つの疑問符を含む構文はNull 合体演算子に使用されますが、式には条件演算子が必要です

于 2013-06-09T20:57:18.757 に答える
2

??null 合体演算子です。op == "?"ブール値を返す式です。

探しているのは、条件演算子int sign = (op == "+" ? 1 : -1);を使用するです。

于 2013-06-09T20:57:15.447 に答える
2

条件演算子 (三項演算子とも呼ばれます) に必要な疑問符は 1 つだけです。

int sign = (op == "+" ? 1 : -1);
于 2013-06-09T20:57:29.023 に答える
-1

また、(文字列がどこから来るかに応じて)チェックする必要があります

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

編集:null オプションのチェック

int sign = (String.IsNullOrEmpty(op) ? 0 : (op == "+") ? 0 : -1);
于 2013-06-09T21:28:20.177 に答える