Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Ekspresi nilai default menghasilkan nilai default jenis. Ada dua jenis ekspresi nilai default: panggilan operator default dan literal default.
Anda juga menggunakan default kata kunci sebagai label kasus default dalam switch pernyataan.
operator default
Argumen ke operator default harus berupa nama jenis atau parameter jenis, seperti yang ditunjukkan contoh berikut:
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.
literal default
Anda dapat menggunakan default literal untuk menghasilkan nilai default jenis ketika pengkompilasi dapat menyimpulkan jenis ekspresi.
default Ekspresi harfiah menghasilkan nilai yang sama dengan default(T) ekspresi di mana T adalah jenis yang disimpulkan. Anda dapat menggunakan default harfiah dalam salah satu kasus berikut:
- Dalam penugasan atau inisialisasi variabel.
- Dalam deklarasi nilai default untuk parameter metode opsional.
- Dalam panggilan metode untuk memberikan nilai argumen.
-
returnDalam pernyataan atau sebagai ekspresi dalam anggota bertubuh ekspresi.
Contoh berikut menunjukkan penggunaan default literal:
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) ]
Tip
Gunakan aturan gaya .NET IDE0034 untuk menentukan preferensi tentang penggunaan default literal di basis kode Anda.
Spesifikasi bahasa C#
Untuk informasi selengkapnya, lihat bagian Ekspresi nilai default dari spesifikasi bahasa C#.