기본값 식 - 기본값 생성
기본값 식은 형식의 기본값을 생성합니다. 기본값 식에는 두 가지가 있습니다. 기본 연산자 호출 및 기본 리터럴.
또한 default
키워드를 switch
문 내의 기본 사례 레이블로 사용할 수 있습니다.
기본 연산자
default
연산자의 인수는 다음 예제와 같이 형식 또는 형식 매개 변수의 이름이어야 합니다.
Console.WriteLine(default(int)); // output: 0
Console.WriteLine(default(object) is null); // output: 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
리터럴을 사용하여 형식의 기본값을 생성할 수 있습니다. default
리터럴 식은 T
가 추론된 형식은 default(T)
식과 동일한 값을 생성합니다. 다음과 같은 경우에 default
리터럴 사용할 수 있습니다.
- 변수의 할당 또는 초기화에서
- 선택적 메서드 매개 변수에 대한 기본값 선언에서
- 인수 값을 제공하기 위한 메서드 호출에서
return
문에서 또는 식 본문 멤버의 식으로
다음 예제에서는 default
리터의 사용법을 보여 줍니다.
T[] InitializeArray<T>(int length, T initialValue = default)
{
if (length < 0)
{
throw new ArgumentOutOfRangeException(nameof(length), "Array length must be nonnegative.");
}
var array = new T[length];
for (var i = 0; i < length; i++)
{
array[i] = initialValue;
}
return array;
}
void Display<T>(T[] values) => Console.WriteLine($"[ {string.Join(", ", values)} ]");
Display(InitializeArray<int>(3)); // output: [ 0, 0, 0 ]
Display(InitializeArray<bool>(4, default)); // output: [ False, False, False, False ]
System.Numerics.Complex fillValue = default;
Display(InitializeArray(3, fillValue)); // output: [ (0, 0), (0, 0), (0, 0) ]
팁
코드베이스에서 default
리터럴 사용에 대한 기본 설정을 지정하려면 .NET 스타일 규칙 IDE0034를 사용합니다.
C# 언어 사양
자세한 내용은 C# 언어 사양의 기본값 식 섹션을 참조하세요.
참고 항목
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET