-3

我只是在阅读一些朋友的代码并为它编写一个测试工具,我遇到了一些困扰我的事情:

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

'?' 是什么意思?符号在这个操作中做什么?

将不胜感激对所称内容的一般描述。我似乎无法在网上或我拥有的任何书籍中找到答案。

4

5 回答 5

5

这将是三元运算符。

x ? y : z应该读作

if ( x )
    y;
else
    z;
于 2013-05-05T21:13:46.810 回答
4

它被称为条件运算符

这是编写需要根据比较结果分配值的条件的简洁方法

实际上这意味着

result = (evaluate a condition) ? (expression to return if the condition is true) : 
                                  (expression to return if the condition is false)
于 2013-05-05T21:13:28.710 回答
1

那是条件运算符

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

于 2013-05-05T21:17:13.990 回答
0

三元运算符

微软链接到 ?: 运算符

几乎是一个内联 if 语句

于 2013-05-05T21:14:06.297 回答
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";
于 2013-05-05T21:15:20.377 回答