ekspresi nilai default - menghasilkan nilai default
Ekspresi nilai default menghasilkan nilai default suatu jenis. Terdapat dua jenis ekspresi nilai default: panggilan operator default dan harfiah default.
Anda juga menggunakan kata kunci default
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.
harfiah 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 ekspresi default(T)
, dengan T
adalah jenis yang disimpulkan. Anda dapat menggunakan default
harfiah dalam segala kasus berikut:
- Dalam penugasan atau inisialisasi variabel.
- Dalam deklarasi nilai default untuk parameter metode opsional.
- Dalam panggilan metode untuk memberikan nilai argumen.
- Dalam
return
pernyataan atau sebagai ekspresi dalam anggota yang mengisi ekspresi.
Contoh berikut menunjukkan penggunaan harfiah 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) ]
Tip
Gunakan aturan gaya IDE0034 .NET untuk menentukan preferensi tentang penggunaan harfiah default
dalam basis kode Anda.
Spesifikasi bahasa C#
Untuk informasi selengkapnya, lihat bagian Nilai default ekspresi dari spesifikasi bahasa C#.
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk