다음을 통해 공유


기본값 식 - 기본값 생성

기본값 식은 형식의 기본값 을 생성합니다. 기본 연산자 호출과 기본 리터럴의 두 가지 기본값 식이 있습니다.

또한 문 내에서 키워드를 기본 사례 레이블로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 수 있습니다.

다음 예제에서는 리터럴의 사용을 보여 줍니다 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# 언어 사양기본값 식 섹션을 참조하세요.

참고하십시오