널 조건부 연산자(Null-donditional Operator)
- null 조건부 연산자는 피연산자가 null이 아닌 것으로 평가되었을 때만 맴버액세스
?.
연산을 피연산자에 적용하며, 그렇지 않으면null
을 반환합니다.
a가 null로 평가되면 a?.x의 결과는 null 입니다
a가 null이 아닌 것으로 평가되면 a?.x의 결과는 a.x와 같습니다.
?. 사용 방법
public void Run()
{
//입력된 str값이 널이 아닐경우, str.string()값을 리턴 null일경우 null을 리턴
Func<string, string> checkNullString = delegate (string str)
{ return str?.ToString(); };
Console.WriteLine(checkNullString(null));
Console.WriteLine(checkNullString("양뱅!"));
}
결과
양뱅!
널 병합 연산자(Null-coalescing operator) c# 8.0 이상
null 병합 연산자
??
는null
이 아닌 경우 왼쪽 피연산자의 값을 반환합니다.??=
는 왼쪽 피연산자가 null로 계산되는 경우에만 오른쪽 피연산자의 값을 왼쪽 피연산자에 대입합니다.
?? 사용 방법
public void Run()
{
//입력된 str값이 널이 아닐 경우, str값을 리턴, null 이면 Null Value 라는 내용 리턴
Func<string, string> checkNullString = delegate (string str)
{ return str ?? "Null Value"; };
Console.WriteLine(checkNullString(null));
Console.WriteLine(checkNullString("양뱅!"));
}
??= 사용 방법
public void Run()
{
//입력된 str값이 널이 아닐 경우, str값을 reValue 에 저장
// null 이면 reValue 에 Null Value 라는 내용을 저장
Func<string, string> checkNullString = delegate (string str)
{
string reValue = str ??= "Null Value";
return reValue;
};
Console.WriteLine(checkNullString(null));
Console.WriteLine(checkNullString("양뱅!"));
}
결과
Null Value
양뱅!
'C# 문법' 카테고리의 다른 글
[C#] Action<T> Delegate 리턴값이 없는 메서드 (0) | 2022.01.06 |
---|---|
[C#] Class에서 인덱서[T] 사용하기 (0) | 2022.01.04 |
[C#] C# 5.0 await / async - 비동기 FileRead => ReadAsync (0) | 2021.12.28 |
[C#] Enum에 Name List / Value List 가져오기 (0) | 2021.12.26 |
[C#] BackgroundWorker (0) | 2021.12.23 |