2013-06-16 4 views
3

나는 모두조건부의 양쪽에서 null을 확인하는 것이 효과가 있습니까?

if(something == null) 

if(null == something) 

가이 널 (null) 검사가 어떻게 주문하는 달라 지나요 본 적 있어요? 나는 기능상의 차이점을 보지 못했지만 그 뒤에 추론이 있는지를 알고 싶다.

+0

2 == 3 및 3 == 2와 비슷하지만 측면이 결과에 영향을 미치지 않습니다. –

답변

7

이것은 C#에서 유효하며 구어체로 Yoda Condition으로 알려져 있습니다. 컴파일시에 ==을 우연히 =으로 바꾸지 않으므로 C/C++ 세계의 많은 사람들이 이것을 좋아합니다. 그러나 컴파일러가 해당 인스턴스에서 오류로 (= 하나) 플래그를 지정한다는 사실 (C#에서는 boolean eval이 아닌 한 C#에서는 유용하지 않습니다).

+0

이 구문을 선호하지만 사람들이 왜 혼란스러워하는지 알 수있었습니다. 나는 이것을 볼 때 싫어. if (true == myVariable) { } –

5

일부 프로그래머는 사고를 피하기 위해 항등 연산자의 왼쪽에 상수를 넣는 것을 선호합니다 (== 대신 =). 두 번째 예에서는 = 오타가 있으면 컴파일러 오류가 발생합니다.이 오류는 수정하기 쉽지만 첫 번째 예에서는 오타가 발견하기가 어려울 수 있습니다.

이 연습은 C 및 C++ 프로그래밍 스타일에서 직접 나온 것입니다. 그것이 C#에 영향을 줄지 나는 모른다. 더 이상 관련이 없다면 전략보다는 습관 일 가능성이 큽니다.

관련 문제