Varsayılan değer ifadeleri (C# Başvurusu)

Varsayılan değer ifadesi bir türün varsayılan değerini üretir. İki tür varsayılan değer ifadesi vardır: varsayılan işleç çağrısı ve varsayılan bir sabitdeğer.

Ayrıca, default anahtar sözcüğünü bir switch deyimindekivarsayılan Case etiketi olarak da kullanabilirsiniz.

default işleçi

defaultAşağıdaki örnekte gösterildiği gibi, işlecin bağımsız değişkeni bir tür veya tür parametresinin adı olmalıdır:

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.

Varsayılan sabit değer

C# 7,1 ' den başlayarak, default derleyicinin ifade türünü çıkardığı zaman bir türün varsayılan değerini oluşturmak için değişmez değeri kullanabilirsiniz. defaultDeğişmez değer ifadesi, default(T) çıkarılan tür olan ifadesiyle aynı değeri üretir T . defaultAşağıdaki durumlardan herhangi birinde değişmez değeri kullanabilirsiniz:

Aşağıdaki örnek, default değişmez değerin kullanımını gösterir:

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) ]

C# dili belirtimi

Daha fazla bilgi için C# dil belirtiminin varsayılan değer ifadeleri bölümüne bakın.

Değişmez değer hakkında daha fazla bilgi için default bkz. özellik teklifi Note.

Ayrıca bkz.