Development Tip

x? .y? .z는 무엇을 의미합니까?

yourdevel 2020. 11. 4. 20:52
반응형

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 방법

  • 먼저 xnull이 아닌지 확인하고 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

반응형