?? 연산자(C# 참조)
?? 연산자는 null 병합 연산자라고도 하며 null 허용 값 형식이나 참조 형식의 기본값을 정의하는 데 사용됩니다. 이 연산자는 왼쪽 피연산자가 null이 아닐 경우 해당 피연산자를 반환하고 null일 경우 오른쪽 피연산자를 반환합니다.
설명
null 허용 형식은 값을 포함하거나, 정의되지 않은 상태일 수 있습니다. ?? 연산자는 null 허용 형식이 null을 허용하지 않는 형식에 할당될 때 반환할 기본값을 정의합니다. ?? 연산자를 사용하지 않고 null 허용 값 형식을 null을 허용하지 않는 값 형식에 할당하려고 하면 컴파일 타임 오류가 발생합니다. 캐스트를 사용할 때 null 허용 값 형식이 현재 정의되어 있지 않으면 InvalidOperationException 예외가 throw됩니다.
자세한 내용은 nullable 형식(C# 프로그래밍 가이드)을 참조하십시오.
두 인수가 모두 상수인 경우에도 ?? 연산자의 결과는 상수가 될 수 없습니다.
예제
class NullCoalesce
{
static int? GetNullableInt()
{
return null;
}
static string GetStringValue()
{
return null;
}
static void Main()
{
// ?? operator example.
int? x = null;
// y = x, unless x is null, in which case y = -1.
int y = x ?? -1;
// Assign i to return value of method, unless
// return value is null, in which case assign
// default value of int to i.
int i = GetNullableInt() ?? default(int);
string s = GetStringValue();
// ?? also works with reference types.
// Display contents of s, unless s is null,
// in which case display "Unspecified".
Console.WriteLine(s ?? "Unspecified");
}
}