null 조건부 연산자

CJB_ny·2022년 7월 18일
0

C#

목록 보기
5/24
post-thumbnail

?. 연산자

null 조건부 연산자인 ?. = C# 6.0에서 추가가 됨.

객체의 멤버에 접근하기 전에 해당 객체가 null인지 검사하여 그 결과가 참(객체가 null)이면 그 결과로 null을 반환하고
그렇지 않은 경우에는 .(쩜) 뒤에 지정된 멤버를 반환한다.

객체를 만들어 준 경우

예제를 보면은

현재 Foo라는 클래스의 의 객체를 만듦.

new 연산자를 통해서 만들어주었기 때문에 객체는 힙에 올라가게되고

힙메모리에 올라간 주소를 foo라는 이름으로 가르키고 있는 것이다.

그리고 정수값 또는 null값을 가질 수 있는 int? bar라는 변수에

bar = foo?.member; 인 상태인데

foo 객체가 null이 아니면 member필드에 접근을 하게 해주는 형태이다.

객체 만들어 주지 않은 경우

당연하게도 bar의 값에는 아무것도 들어가지 않게 된다.

?[] 연산자

"?[]"도 "?." 연산자와 동일한 기능을 수행하는 연산자이다.

다만, "?[]" 연산자는 배열과 같은 컬렉션 객체의 첨자를 이용한 참조에 사용된다는 점이 다르다.

?[] 연산자 사용

a?[0] 이라는 말이 결국

a의 객체의 0번째 인덱스가 null인가요 아닌가요? 물어보는 거임.

처음에는 null이라 아무것도 출력을 안하는 것이고

나중에 객체가 만들어져서 정상적으로 출력하는거 볼 수 있다.

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글