2013-08-16 3 views
0

У меня есть часть кода, которая должна быть преобразована в C#.return Boolean values ​​

bool checkvalue() 
{ 
unsigned char ucvalue; 
Method(&ucvalue); 
return ucvalue? false:true; 
} 

Метод() имеет определение:

This function returns the current position . 0 = OFF 1 = ON 

Так я не понял, что return ucvalue? false:true; средства.

Спасибо.

+2

Это [тернарный или condiitonal operator] (http://en.wikipedia.org/wiki/%3F :). – juanchopanza

+0

Кстати, этот оператор также присутствует в C#. – Chris

ответ

3

Это ternary-operator, вы можете «перевести» это выражение почти от 1: 1 до C#. Это то же самое, как

if(ucvalue) 
    return false; 
return true; 

От MSDN для C#:

условного оператор (:) возвращает одно из двух значений в зависимости от значения логического выражения. Ниже приведен синтаксис условного оператора.

condition ? first_expression : second_expression; 

С here для C++:

Вы можете обмениваться простой, если-иначе код для одного оператора - условный оператор. Условный оператор является единственным тернарным оператором C++ (работает с тремя значениями). Другие операторы, которые вы видели, называются бинарными операторами (работающими на двух значениях).

+0

- это условие? – Zigma

+2

Извините, что вы имеете в виду? –

+0

'return ucvalue? false: true; ' – Zigma

1

Я предполагаю, что это означает, что «если ucvalue равно нулю, вернуть ложь, иначе возвращает истину»

+1

Неправильно. Это означает, что если значение ucvalue равно NULL, верните значение false, else return true' – joe

+0

+1. это меня сбивает с толку. – Zigma

+0

похоже, что я не могу минус себя 8) – athabaska

2

Это эквивалентно:

return ucvalue==0; 

который я нахожу наиболее привлекательный вид. Я бы, возможно, изменил Method() так, чтобы он возвращал значение вместо принятия аргумента. Это упростит код:

return Method()==0;