728x90
C# 코드에서 가끔 물음표 두개(??)를 볼 수 있다. 기본적으로 물음표 한개(?) 는 Nullable을 뜻 한다. 그러니까 이 값이 null 일 수도 있다는 것을 명시해준다.
string ? str; // str가 null일수도 있다.
그렇다면 물음표 두개(??)는 무엇을 뜻할까? 위의 어트리뷰트와 비슷하다. 얘가 null이야 아니야? null이면 이렇게 해주고, null이 아니면 저렇게 해줘. 약간 조건문의 냄새가 나지 않는가? 맞다. 조건문의 성격을 띈 연산자다. 아래 코드를 보자.
string name = param ?? "default";
// param이 null이 아니라면 name에 param을 넣고, null 이라면 default를 넣어라. 이다.
// param은 메소드의 파라미터든, 위에서 사용된 것이든, 어디선가 가져온 것이다.
조건문의 역할을 하기 때문에, 조건문으로 대체될 수도 있다. 아래 코드를 보자.
string name = "";
if(param != null){
name = param;
}else{
name = "default";
}
// 조건문을 간략하게 만든 다음과도 같다.
string name = param != null ? param : "default";
자기 상황과 기호에 맞춰서 사용하면 될 것 같다. 단지 저런 코드가 나왔을 때, 본인이 사용하지 않는다고 뭔지 몰라서는 안될 것 같다.
728x90
'개발 > C#' 카테고리의 다른 글
List - 리스트 (0) | 2020.07.14 |
---|---|
값형식과 참조형식 (0) | 2020.07.13 |
Stack and Heap (0) | 2020.07.13 |
Delegate - 델리게이트 (0) | 2020.07.11 |
Property - 프로퍼티 (3) | 2020.07.09 |
댓글