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 switch
olarak 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.