Nilai default jenis C# (referensi C#)
Tabel berikut menunjukkan nilai default jenis C#:
Jenis | Nilai default |
---|---|
Setiap jenis referensi | null |
Setiap jenis numerik integral bawaan | 0 (nol) |
Setiap jenis numerik titik-mengambang bawaan | 0 (nol) |
bool | false |
Char | '\0' (U+0000) |
enum | Nilai yang dihasilkan oleh ekspresi (E)0 , yang mana E adalah pengidentifikasi enum. |
struktur | Nilai yang dihasilkan dengan mengatur semua bidang jenis nilai ke nilai defaultnya dan semua bidang jenis referensi ke null . |
Setiap jenis nilai dapat diubah ke null | Instans yang propertinya HasValue adalah false dan properti Value tidak ditentukan. Nilai default tersebut juga dikenal sebagai nilai null dari jenis nilai yang dapat diubah ke null. |
Ekspresi nilai default
Gunakan default
operator untuk menghasilkan nilai default suatu jenis, seperti yang ditunjukkan contoh berikut:
int a = default(int);
Anda dapat menggunakan default
literal untuk menginisialisasi variabel dengan nilai default jenisnya:
int a = default;
Konstruktor tanpa parameter dari jenis nilai
Untuk jenis nilai, konstruktor tanpa parameter implisit juga menghasilkan nilai default dari jenis tersebut, seperti yang ditunjukkan contoh berikut:
var n = new System.Numerics.Complex();
Console.WriteLine(n); // output: (0, 0)
Pada durasi, jika instans System.Type mewakili jenis nilai, Anda dapat menggunakan metode Activator.CreateInstance(Type) untuk memanggil konstruktor tanpa parameter untuk mendapatkan nilai default dari jenis tersebut.
Catatan
Dalam C# 10 dan yang lebih baru, jenis struktur (yang merupakan jenis nilai) mungkin memiliki konstruktor tanpa parameter eksplisit yang dapat menghasilkan jenis nilai non-default. Oleh karena itu, sebaiknya gunakan operator default
atau harfiah default
untuk menghasilkan nilai default suatu jenis.
Spesifikasi bahasa C#
Untuk informasi selengkapnya, lihat bagian berikut dari spesifikasi bahasa C#:
- Nilai default
- Konstruktor default
- C# 10 - Konstruktor struct tanpa parameter
- C# 11 - Struktur default otomatis