티스토리 뷰

IT/C#

[CS][문법] 물음표 2개(??) 연산자

주인장 진빼이

?? 연산자

이 연산자는 삼항연산자와 비슷하다.

삼항연산자보다 더 간편하다.

 

연산자의 역할은 ??를 기준으로 앞에 식(초록색 영역)이 null인지 체크 후

null이면 ?? 문자 뒤(우측)에 있는 동작2를 수행, null이 아니면 앞(좌측)에 있는 동작1을 수행한다.

 

동작1과 동작2의 null 체크 타입이 동일해야 한다.

동작1 체크 타입 동작2 체크 타입 컴파일 성공 여부
string int X
string string O
object object O
string outText = text + (new MyObject() ?? new MyObject()) + "!"; // 컴파일 성공
string outText = text + (NotNullText ?? new MyObject()) + "!"; // 체크 타입 불일치, 컴파일 실패

 

변수 NotNullText가 null인 경우 동작2를 수행하여 outText 값이 This is Null Text가 출력된다.

반대로 변수 NotNullText가 null이 아닌 경우 동작1을 수행하여 outText값이 This is Not Null Text가 출력된다.

 

삼항연산자처럼 식을 boolean 타입으로 계산하려는 경우 컴파일 오류가 발생한다. (null or not null만 체크한다)

 

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함