声明中的问号和冒号意味着什么?这是什么意思?

001*_*001 63 c# asp.net web-services

那是什么?和冒号意味着什么

 ((OperationURL[1] == "GET") ? GetRequestSignature() : "")
Run Code Online (Sandbox Code Playgroud)

在以下声明中......

string requestUri = _apiURL + "?e=" + OperationURL[0] + ((OperationURL[1] == "GET") ? GetRequestSignature() : "");
Run Code Online (Sandbox Code Playgroud)

Ant*_*ram 98

这是条件运算符表达式.

(condition) ? [true path] : [false path];
Run Code Online (Sandbox Code Playgroud)

例如

 string value = someBooleanExpression ? "Alpha" : "Beta";
Run Code Online (Sandbox Code Playgroud)

因此,如果布尔表达式为真,则值将保持"Alpha",否则,它将保持"Beta".

对于人们常见的陷阱,请在C#标签维基中查看此问题.

  • @YuZhang:不,这是对的.示例:字符串值= 1 == 2?"Alpha":"Beta"; - >值将保持"Beta" (8认同)
  • 值 == someBooleanExpression (2认同)

Ode*_*ded 14

它是三元条件运算符.

如果前面的括号中的条件?为真,则返回值左侧:的值,否则返回右侧的值.


Spo*_*oks 7

它是一个三元运算符,或者if if的缩写形式.

条件?值为true:如果为false则为value

以下是有关该主题的更多信息的链接

编辑:链接已修复