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:
- Bir değişkenin atamasında veya başlatılmasında.
- İsteğe bağlı bir yöntem parametresiiçin varsayılan değer bildiriminde.
- Bir bağımsız değişken değeri sağlamak için bir yöntem çağrısında.
- Bir deyimde
returnveya bir ifade ileifade olarak ifade olarak.
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.