C# Ternary 연산자 및 무효 정수 : 왜
가 실패하는지
? 10 : null
모두 호환 유형을 갖도록 요구합니다. 다음 코드가 컴파일러 오류를 생성하는 이유를 살펴 보겠습니다.
및 condition ? value1 : value2
로, value1로 해석합니다 (이 맥락에서는 값의 부재를 나타냅니다). value2
와 널 값 사이에 자동 변환이 없기 때문에 컴파일러는 3 배 표현식의 결과 유형을 유추 할 수 없습니다.
<code class="language-csharp">int? x = GetBoolValue() ? 10 : null; </code>
10
int
null
가 무효 정수로 취급되어야한다고 컴파일러에게 명시 적으로 알려줍니다.
null
int
귀무인 정수에 캐스트 :
로, 3 원 운영자의 양쪽을 호환시킵니다.
는 로 평가하여 널 케이스를 나타내는 유형-안전 방법을 제공합니다. 이것은 종종 명확성을 위해 선호됩니다. int?
<code class="language-csharp">int? x = GetBoolValue() ? (int?)10 : null;</code>
위 내용은 `getBoolValue ()가있는 이유는 무엇입니까? 10 : C# Ternary 연산자의 Null`은 금지 되었습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!