기본값 식은 형식의 기본값 을 생성합니다. 기본 연산자 호출과 기본 리터럴의 두 가지 기본값 식이 있습니다.
또한 문 내에서 키워드를 기본 사례 레이블로switch
사용합니다default
.
default 연산자
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
유추된 형식인 default(T)
식 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) ]
팁 (조언)
.NET 스타일 규칙 IDE0034 사용하여 코드베이스에서 리터럴 사용에 default
대한 기본 설정을 지정합니다.
C# 언어 사양
자세한 내용은 C# 언어 사양의 기본값 식 섹션을 참조하세요.
참고하십시오
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET