我有一段要转换为 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;
意思。
谢谢。
这就是ternary-operator
,您可以将这个表达式几乎 1:1 地“翻译”成 C#。是一样的
if(ucvalue)
return false;
return true;
来自C# 的MSDN:
条件运算符 (?:) 根据布尔表达式的值返回两个值之一。以下是条件运算符的语法。
condition ? first_expression : second_expression;
从这里开始C++:
您可以为单个运算符(条件运算符)交换简单的 if-else 代码。条件运算符是唯一的 C++ 三元运算符(处理三个值)。您见过的其他运算符称为二元运算符(处理两个值)。
它相当于:
return ucvalue==0;
我觉得最吸引人的形式。我可能会更改 Method() 以便它返回值而不是接受参数。这将使代码更简单:
return Method()==0;
我认为它的意思是“如果 ucvalue 为 null,则返回 false,否则返回 true”