什么是'?'角色在这个操作中做什么?

时间:2013-05-05 21:11:26

标签: c# operators

我只是在阅读一些朋友代码并为它编写测试工具,而且我遇到了一些让我烦恼的事情:

Console.WriteLine(inputString + (isPalindrome(inputString) ? displayConditions(" some text 1", 
ConsoleColor.Black) : displayConditions("some text 2", ConsoleColor.White)));

'?'是什么?符号做这个操作?

将非常感谢对所调用内容的一般描述。我似乎无法在网上或我拥有的任何书籍中找到答案。

5 个答案:

答案 0 :(得分:5)

这将是三元运营商。

x ? y : z应该被理解为

if ( x )
    y;
else
    z;

答案 1 :(得分:4)

它被称为Conditional Operator

这是一种编写条件的简明方法,您需要根据比较结果分配值

实际上意味着

result = (evaluate a condition) ? (expression to return if the condition is true) : 
                                  (expression to return if the condition is false)

答案 2 :(得分:1)

那是conditonal operator

它通常也被称为“三元运算符”,但这仅仅意味着具有三个操作数的运算符。这并没有说明运算符的作用,但它是C#中唯一具有三个操作数的运算符。

答案 3 :(得分:0)

三元运营商

Mircosoft link to the ?: operator

几乎是内联if语句

答案 4 :(得分:0)

这是三元运营商。它用于替换涉及if {} else {}的语句。

例如,而不是做类似的事情:

bool value = false;
string myString;
if (value){
  myString = "something";
else{
  myString = "something else";
}

你可以这样做:

string myString = (value) ? "something" : "something else";

如果:之前的条件为真,则将评估?之前的表达式,否则将评估:之后的表达式。

这也可以用于退货:

return (myCondition) ? "yes" : "no";