我有一段代码要转换为c#。
bool checkvalue()
{
unsigned char ucvalue;
Method(&ucvalue);
return ucvalue? false:true;
}
Method()有定义:
This function returns the current position . 0 = OFF 1 = ON
所以我没有得到return ucvalue? false:true;
的含义。
感谢。
答案 0 :(得分:3)
这是ternary-operator
,你可以将这个表达式几乎1:1“翻译”到C#。和
if(ucvalue)
return false;
return true;
来自MSDN的C#:
条件运算符(?:)根据布尔表达式的值返回两个值中的一个。以下是条件运算符的语法。
condition ? first_expression : second_expression;
来自here的C ++:
您可以为单个运算符交换简单的if-else代码 - 条件运算符。条件运算符是唯一的C ++三元运算符(处理三个值)。您见过的其他运算符称为二元运算符(处理两个值)。
答案 1 :(得分:2)
相当于:
return ucvalue==0;
我发现最有吸引力的形式。我可能会更改Method(),以便它返回值而不是参数。这将使代码更简单:
return Method()==0;
答案 2 :(得分:1)
我认为这意味着“如果ucvalue为null,则返回false,否则返回true”