Bagikan melalui


Konstanta (Panduan Pemrograman C#)

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, , uintlong, 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#.

Lihat juga