我试图了解这个变量赋值中发生了什么。
num = forward.Data.Key >= key ? 1 : 0;
特别是这部分 >= key ? 1 : 0
帮助前进是一个LinkedListCell<KeyValuePair<int, double>> forward = _data.Next;
key
是传递给方法的 int 参数。
它也是一个用 C# 编写的程序
我试图了解这个变量赋值中发生了什么。
num = forward.Data.Key >= key ? 1 : 0;
特别是这部分 >= key ? 1 : 0
帮助前进是一个LinkedListCell<KeyValuePair<int, double>> forward = _data.Next;
key
是传递给方法的 int 参数。
它也是一个用 C# 编写的程序
这就是三元运算符。它接受一个布尔表达式,并根据该表达式的结果返回两个值之一。您可以使用多种语言获得它。
它相当于:
if( forward.Data.Key >= key ) {
num = 1;
}
else {
num = 0;
}
它被称为ternary conditional operator
。(或简短的If-Else
陈述)
value = condition ? truePart : falsePart;
三元运算符测试条件。它比较两个值。它产生取决于比较结果的第三个值。
来自 MSDN,
int input = Convert.ToInt32(Console.ReadLine());
string classify;
// if-else construction.
if (input < 0)
classify = "negative";
else
classify = "positive";
// ?: conditional operator.
classify = (input < 0) ? "negative" : "positive";