2012-09-25 2 views
-5

이 변수 할당에서 무슨 일이 일어나고 있는지 이해하려고합니다. 특히이 변수 할당에서 어떤 일이 일어나는지 이해하려고합니다.

num = forward.Data.Key >= key ? 1 : 0; 

이 부분 >= key ? 1 : 0

전방을 도와는 LinkedListCell<KeyValuePair<int, double>> forward = _data.Next;

key 메소드에 전달되고있는 int 파라미터이다.

은 또한 그것은 그것은 ternary conditional operator라고

+0

왜 downvote? 이것이 기본적인 질문이라는 것을 알고 있지만 삼항 조건 연산자는 그것이 무엇인지 알지 못하면 알아보기가 어렵고 찾기가 어렵습니다. – Malcolm

+1

'C# question mark'에 대해 stackoverflow를 검색하면 많은 중복 질문을 찾기 위해 많은 시간을 소비하지 않습니다. 대부분은 중복으로 닫힙니다. – paddy

답변

5

. 부울 식을 사용하고 해당 식의 결과에 따라 두 값 중 하나를 반환합니다. 여러 언어로 구할 수 있습니다.

그것은 동등의 :

if(forward.Data.Key >= key) { 
    num = 1; 
} 
else { 
    num = 0; 
} 
+0

나는이 이름에 대한 합의를 들어 본 적이 없습니다. 어쩌면 다른 언어로 된 이름이 다를 수도 있습니다 ... 개인적으로 항상 쿼리 콜론 연산자라고 불렀지 만 분명히 많은 사람들이하지는 않습니다 ... 그래서 나는 더 이상 내 대답에 그 구를 사용하지 않습니다. =) – paddy

3

C#으로 작성된 프로그램입니다. (또는 짧은 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"; 
+0

"조건부 연산자"라고합니다 - http://msdn.microsoft.com/en-us/library/ty67wk28%28v=vs.110%29.aspx – Enigmativity

관련 문제