varsayılan değer ifadeleri - varsayılan değeri üretin

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 değişmez değer.

Ayrıca deyimi içinde default varsayılan büyük/küçük harf etiketi switcholarak anahtar sözcüğünü de kullanırsınız.

varsayılan işleç

aşağıdaki örnekte gösterildiği gibi işlecin bağımsız değişkeni default 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 değişmez değer

Derleyici ifade türünü çıkarabildiğinde bir türün varsayılan değerini üretmek için değişmez değerini kullanabilirsiniz default . Değişmez default değer ifadesi, ifadeyle default(T) aynı değeri üretir ve burada T çıkarsanan türdür. Değişmez değeri default aşağıdaki durumlardan herhangi birinde kullanabilirsiniz:

  • Bir değişkenin atamasında veya başlatılmasında.
  • İsteğe bağlı yöntem parametresi için varsayılan değerin bildiriminde.
  • Bağımsız değişken değeri sağlamak için bir yöntem çağrısında.
  • Bir return deyimde veya ifade gövdeli üyedeki bir ifade olarak.

Aşağıdaki örnekte değişmez değerin kullanımı gösterilmektedir 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) ]

İpucu

Kod tabanınızda değişmez değerin default kullanımıyla ilgili bir tercih belirtmek için .NET stil kuralı IDE0034 kullanın.

C# dili belirtimi

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

Ayrıca bkz.