特别是符号? :我怎样才能以其他方式使用它们
Console.WriteLine("The rectangle with edges [{0},{1}] is {2}a square" ,
r3.Edge1, r3.Edge2, (r3.IsSquare()) ? "" : "not ");
答案 0 :(得分:1)
简单地说条件运算符(?)执行following,
如果条件为
true
,则评估first_expression并将其作为结果。如果条件为false
,则评估second_expression并将其作为结果
输入以下列格式给出,
条件? first_expression:second_expression;
在您的情况下参数如下,
condition = r3.IsSquare() // <= return a Boolean I guess
first_expression = "" // Empty string
second_expression = not // word `not`
所以在你的情况下代码(r3.IsSquare()) ? "" : "not ")
做了什么,
r3
是正方形,则输出为""
,为空字符串。r3
不是正方形,则输出为单词not
请注意,调用IsSquare()
的方法r3
应返回布尔值(true或false)。
在控制台程序上评估相同的条件,
// if r3.IsSquare() return true
Console.WriteLine((true ? "" : "not")); // <= Will out an empty
// if r3.IsSquare() return false
Console.WriteLine((false ? "" : "not")); // will out the word `not`
Console.ReadKey();
答案 1 :(得分:0)
看看MSDN
简单示例
int input = Convert.ToInt32(Console.ReadLine());
string classify;
// if-else construction.
if (input > 0)
classify = "positive";
else
classify = "negative";
// ?: conditional operator.
classify = (input > 0) ? "positive" : "negative";
答案 2 :(得分:0)
这是一个三元运营商。它的基本工作方式是这样的:
bool thingToCheck = true;
var x = thingToCheck ? "thingToCheck is true" : "thingToCheck is false";
Console.WriteLine(x);
答案 3 :(得分:0)
正如其他人所说,?是三元运营商。
所以回答实际问题,
Console.WriteLine("The rectangle with edges [{0},{1}] is {2}a square" ,
r3.Edge1, r3.Edge2, (r3.IsSquare()) ? "" : "not ");
当该行写入控制台时,{0}和{1}将分别替换为r3.Edge1和r3.Edge2的值。 r3.IsSquare()可能返回一个布尔值,所以如果它返回true,它将什么都不写(空字符串“”),但如果它返回false,它将写入“not”。
例如,假设r3.IsSquare()返回false,最终结果看起来像The rectangle with edges[3, 6] is not a square
,如果它返回true,那么它会说The rectangle with edges[3, 6] is a square
。