2013-08-16 2 views
0

나는 C#으로 변환 될 코드 조각이 있습니다. 부울 값을 반환합니다.

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

그래서 내가 무엇을 return ucvalue? false:true; 의미하지 않았다 :

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

방법은()의 정의를 가지고있다.

감사합니다.

+2

IT는 [삼항 또는 condiitonal 연산자]입니다 (http://en.wikipedia.org/wiki/%3F :). – juanchopanza

+0

그건 그렇고, 그 연산자는 또한 C#에 존재합니다. – Chris

답변

3

ternary-operator이 표현식을 거의 1 : 1에서 C#으로 "변환"할 수 있습니다. 이것은 C 번호 MSDN 가입일

if(ucvalue) 
    return false; 
return true; 

같은 동일 :

조건부 연산자 (^ 부울 표현식의 값에 따라 두 개의 값 중 하나를 돌려 준다. 다음은 조건부 연산자의 구문입니다.

here에서 C++에 대한
condition ? first_expression : second_expression; 

:

당신은 하나의 연산자에 대한 간단한 경우 - 다른 코드를 교환 할 수 있습니다 - 조건 연산자를. 조건부 연산자는 세 가지 값으로 작업하는 유일한 C++ 삼항 연산자입니다. 여러분이 보았던 다른 연산자는 2 진수 연산자 (두 값으로 작업)라고합니다. 내가 가장 매력적인 형태를 찾을 수

return ucvalue==0; 

:

+0

이 조건은 어떤 생각입니까? – Zigma

+2

죄송합니다, 무슨 의미인가요? –

+0

'return ucvalue? false : true; ' – Zigma

1

나는 "ucvalue가 null의 경우, 다른, false를 돌려 true를 돌려"이

+1

잘못되었습니다. 'ucvalue가 null이 아닌 경우 false를 반환하고 그렇지 않으면 true를 반환합니다. '를 의미합니다. – joe

+0

+1. 이것은 나를 혼란스럽게하는 것입니다. – Zigma

+0

내가 나 자신을 빼앗을 수없는 것처럼 보입니다. 8) – athabaska

2

그것은에 해당 의미 가정 것입니다. 아마도 인수를 취하는 대신 값을 반환하도록 Method()를 변경합니다. 즉, 코드를 간단하게한다 :

return Method()==0; 
관련 문제