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.
Konstanta adalah nilai yang tidak dapat diubah yang dikenal pada waktu kompilasi dan tidak berubah selama masa pakai program. Konstanta dideklarasikan dengan pengubah const. Hanya jenis bawaan C# yang dapat dinyatakan sebagai const
. Konstanta tipe referensi selain String hanya dapat diinisialisasi dengan nilai null . Jenis yang ditentukan pengguna, termasuk kelas, struct, dan array, tidak boleh const
. Gunakan pengubah readonly untuk membuat kelas, struct, atau array yang diinisialisasi satu kali pada runtime (misalnya dalam konstruktor) dan setelahnya tidak dapat diubah.
C# tidak mendukung const
metode, properti, atau peristiwa.
Jenis enum memungkinkan Anda menentukan konstanta bernama untuk jenis bawaan integral (misalnya int
, , uint
long
, dan sebagainya). Untuk informasi selengkapnya, lihat enum.
Konstanta harus diinisialisasi pada saat dinyatakan. Contohnya:
class Calendar1
{
public const int Months = 12;
}
Dalam contoh ini, konstanta Months
selalu 12, dan tidak dapat diubah bahkan oleh kelas itu sendiri. Bahkan, ketika pengkompilasi menemukan pengidentifikasi konstan dalam kode sumber C# (misalnya, Months
), ia menggantikan nilai harfiah langsung ke dalam kode bahasa perantara (IL) yang dihasilkannya. Karena tidak ada alamat variabel yang terkait dengan konstanta pada waktu run-time, const
field tidak dapat dikirim melalui referensi dan tidak dapat muncul sebagai l-value dalam sebuah ekspresi.
Nota
Berhati-hatilah saat Anda merujuk ke nilai konstanta yang ditentukan dalam kode lain seperti DLL. Jika versi baru DLL menentukan nilai baru untuk konstanta, program Anda masih akan menyimpan nilai harfiah lama hingga dikompilasi ulang terhadap versi baru.
Beberapa konstanta dengan jenis yang sama dapat dideklarasikan pada saat yang sama, misalnya:
class Calendar2
{
public const int Months = 12, Weeks = 52, Days = 365;
}
Ekspresi yang digunakan untuk menginisialisasi konstanta dapat merujuk ke konstanta lain jika tidak membuat referensi melingkar. Contohnya:
class Calendar3
{
public const int Months = 12;
public const int Weeks = 52;
public const int Days = 365;
public const double DaysPerWeek = (double) Days / (double) Weeks;
public const double DaysPerMonth = (double) Days / (double) Months;
}
Konstanta dapat ditandai sebagai publik, privat, dilindungi, internal, dilindungi internal atau privat yang dilindungi. Pengubah akses ini menentukan bagaimana pengguna kelas dapat mengakses konstanta. Untuk informasi selengkapnya, lihat Pengubah Akses.
Konstanta diakses seolah-olah itu adalah bidang statis karena nilai konstanta sama untuk semua instans jenis. Anda tidak menggunakan static
kata kunci untuk mendeklarasikannya. Ekspresi yang tidak berada di kelas yang menentukan konstanta harus menggunakan nama kelas, titik, dan nama konstanta untuk mengakses konstanta. Contohnya:
int birthstones = Calendar.Months;
Spesifikasi Bahasa C#
Untuk informasi selengkapnya, lihat Spesifikasi Bahasa C#. Spesifikasi bahasa adalah sumber definitif untuk sintaks dan penggunaan C#.