반응형
x? .y? .z는 무엇을 의미합니까?
C #의 패턴 일치에 대한 초안 사양 에는 다음 코드 예제가 포함되어 있습니다.
Type? v = x?.y?.z;
if (v.HasValue) {
var value = v.GetValueOrDefault();
// code using value
}
나는 그 이해 Type?
즉 나타냅니다 Type
가정 널 (NULL)이지만 x
, y
하고 z
있는 지역 주민, 무엇을하지 x?.y?.z
말인가요?
이 언어 기능은 C # 6 이상에서만 사용할 수 있습니다.
효과적으로 다음과 같습니다.
x == null ? null
: x.y == null ? null
: x.y.z
즉, "안전한"방법으로 진행 x.y.z
되는 모든 속성이 null 일 수 있습니다.
대체 할 값을 제공 하는 null 병합 연산자 (??) 도 관련 됩니다 null
.
그것은이다 널 전파 운영자 / 널 조건 연산자?. C # 6.0에서 새로 제안 된 기능
x?.y?.z
방법
- 먼저
x
null이 아닌지 확인하고y
그렇지 않으면 null을 반환합니다. - 둘째, x가 null이 아닌
y
경우 확인 하고 null이 아니면 반환z
하지 않으면 null을 반환 합니다.
최종 반환 값은 z
또는 null
입니다.
이 연산자가 없으면 x
액세스 x.y
하면 Null 참조 예외가 발생하며 Null 조건 연산자는 명시 적으로 null을 확인하는 것을 방지하는 데 도움이됩니다.
Null Reference Exception을 피하는 방법입니다.
참조 : C #에서 예정된 언어 기능 이해하기
8-널 조건부 연산자
때때로 코드는 null 검사에 약간의 영향을 미치는 경향이 있습니다. null 조건부 연산자를 사용하면 수신자가 null이 아닌 경우에만 멤버 및 요소에 액세스 할 수 있으며 그렇지 않으면 null 결과가 제공됩니다.
int? length = customers?.Length; // null if customers is null
this.SlimShadies.SingleOrDefault(s => s.IsTheReal)?.PleaseStandUp();
원래.
참고 URL : https://stackoverflow.com/questions/25189564/what-does-xyz-mean
반응형
'Development Tip' 카테고리의 다른 글
벡터를 무작위 화하는 방법 (0) | 2020.11.04 |
---|---|
Node.js의 콜백 함수에서 값 반환 (0) | 2020.11.04 |
Firebase 콘솔에서 APN 용 Apple의 새로운 .p8 인증서를 사용하는 방법 (0) | 2020.11.04 |
VSCode의 "저장시 형식"에서 파일을 제외하는 방법은 무엇입니까? (0) | 2020.11.04 |
동일한 프로젝트의 다른 파일에서 형식 / 모듈을 정의 / 사용하는 F # (0) | 2020.11.04 |