3 개의 위안 컴퓨팅 기호와 빈 유형 : "? 10 : null"의 미스터리를 해결하십시오.
다음 코드 조각을 고려하십시오
에 지정됩니다. 그러나 컴파일러는 오류를 표시합니다
질문 해석이 오류는 세 가지 -yuan 표현식에서 비 일치 유형의 문제를 강조합니다. 왼쪽 표현식 는 a
값을 반환하고 구문 분석은<code class="language-c#">int? x = GetBoolValue() ? 10 : null;</code>
GetBoolValue()
문자 볼륨 (true)입니다. x
, 이것은 빈 단어입니다. x
null
错误:无法确定条件表达式的类型,因为在 int 和 <null> 之间没有隐式转换。
에 직면하고, 그들은 양립 할 수 없습니다. 및 는 숨겨진 변환을 정의하지 않으므로 불완전한 유형의 유형이 발생합니다. 유형을 해결하는 것은 일치하지 않습니다
이 문제를 해결하기 위해서는 올바른 표현식이 빈 유형의 유형과 호환되어야합니다. 몇 가지 방법이 있습니다 :
GetBoolValue()
는 문자 그대로 bool
: 로 변환했습니다
true
false
10
암시 적 변환 int
int?
null
: 빈 유형 는 로 암시 적으로 변환 될 수 있습니다. int
는 10로 변환 될 수 있습니다. null
int
null
리턴 값에 따라 적절한 값을 배포 할 수 있습니다. 위 내용은 왜 '? 10 : null'은 c#에서 nullable 유형으로 실패합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!