我只是在阅读一些朋友代码并为它编写测试工具,而且我遇到了一些让我烦恼的事情:
Console.WriteLine(inputString + (isPalindrome(inputString) ? displayConditions(" some text 1",
ConsoleColor.Black) : displayConditions("some text 2", ConsoleColor.White)));
'?'是什么?符号做这个操作?
将非常感谢对所调用内容的一般描述。我似乎无法在网上或我拥有的任何书籍中找到答案。
答案 0 :(得分:5)
这将是三元运营商。
x ? y : z
应该被理解为
if ( x )
y;
else
z;
答案 1 :(得分:4)
这是一种编写条件的简明方法,您需要根据比较结果分配值
实际上意味着
result = (evaluate a condition) ? (expression to return if the condition is true) :
(expression to return if the condition is false)
答案 2 :(得分:1)
它通常也被称为“三元运算符”,但这仅仅意味着具有三个操作数的运算符。这并没有说明运算符的作用,但它是C#中唯一具有三个操作数的运算符。
答案 3 :(得分:0)
答案 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";