편집 : 원래 질문은 int?
입니다. 이제 수정되었습니다.
그 코드는 컴파일되지 않습니다. 그렇기 때문에 나는 너무 지나치다는 것을 말하고 싶습니다.
오타 제외하고, 사실은 쉽게 문제가 (당신이 LHS는 int?
이다 ??의 RHS,에 bool
을 사용하려는)을 제안가 있다는에 얼룩을지게하지 않고 게시하는 아니다 당신이 그것을 올바르게 할 때조차도 좋은 생각입니다.
현실 세계의 예제를 볼 필요가 있지만 대개은 null 병합 연산자를 사용하여 하나의 명령문으로 분할 한 다음 조건부 연산자를 사용하여 다른 명령문으로 분할합니다. 다른 옵션은 연산자와 관련하여 null 입력 가능 유형의 동작을 사용하는 것이지만 ... 은 합리적으로입니다. (나는 그 행동이 무엇인지 정확하게 생각해야만했다.)
나는 일반적으로 null 통합 연산자를 좋아하지만, 조건 연산자와 결합하면 그냥 애매하게 만든다. 단일 표현식 (예 : 대안이 추가 메소드를 도입하는 초기화)에 상당한 이점이있는 경우이를 수용한다고 생각하지만, 일반적으로이를 두 개의 명령문으로 분할하는 것을 선호합니다.
는 편집 :이 특별한 경우 그냥 "사실"에 대해 비교하는 것입니다 에서 하나의 대안 - 중복 보이는,하지만 bool?
의 경우되지 않습니다 :
result = (testBool == true) ? "Yes" : "No";
브래킷은 필요하지 않습니다 , 당연히, 그러나 명확성 IMO를 추가하십시오.
나는 이것이 더 간단하다고 생각한다. testBool
이 실제로 사실이면 결과는 "예"이다. 그렇지 않으면 "아니오"입니다. "기본값"을 Yes로 지정하려면 다음과 같이 작성하십시오.
result = (testBool == false) ? "No" : "Yes";
나는 그것이 어둡게 생각합니다! –
나는이 코드가 testbool이 정수인 것처럼 컴파일하지 않을 것이라고 생각한다. –
변경 후 컴파일되지만 IMHO는 읽을 수 없다. –