default 키워드

default 연산자

  • default 키워드는 해당 변수 타입의 기본 또는 빈 상태를 반환
  • 참조 형식(class, delegate, …)의 default 값: null
  • 값 형식 (struct, enum, …)의 default 값: all-zeroes value
    • int 0, DateTime 0001-01-01 00:00:00, …
  • 매개 변수의 기본값을 default로 지정 가능
Console.WriteLine(default(int));  // default(int) == 0
Console.WriteLine(default(object) is null);  // default(object) == True

void DisplayDefaultOf<T>()
{
    var val = default(T);
    Console.WriteLine($"Default value of {typeof(T)} is {(val == null ? "null" : val.ToString())}.");
}

DisplayDefaultOf<int?>(); // 참조 형식인지 확인
DisplayDefaultOf<System.Numerics.Complex>();
DisplayDefaultOf<System.Collections.Generic.List<int>>();
// Output:
// Default value of System.Nullable`1[System.Int32] is null.
// Default value of System.Numerics.Complex is (0, 0).
// Default value of System.Collections.Generic.List`1[System.Int32] is null.

// default 리터럴을 사용하여 해당 형식의 기본값으로 변수를 초기화
int a = default(int);
int a = default;

출처