Konstanta (Panduan Pemrograman C#)

Konstanta adalah nilai yang tidak dapat diubah pada waktu program dijalankan dan tidak berubah selama masa pakai program. Konstanta dideklarasikan dengan modifier const. Hanya jenis bawaan C# yang dapat dinyatakan sebagai const. Konstanta tipe referensi selain String hanya dapat diinisialisasi dengan nilai null . Tipe yang ditetapkan pengguna, termasuk class, struct, dan array, tidak boleh const. Gunakan modifier baca-saja untuk membuat class, struct, atau array yang diinisialisasi satu kali pada saat run time (misalnya dalam constructor) dan setelahnya tidak dapat diubah.

C# tidak mendukung metode const, properti, atau event.

Jenis enum memungkinkan Anda menetapkan konstanta bernama untuk tipe data integral (misalnya int, uint, long, dan sebagainya). Untuk informasi selengkapnya, lihat enum.

Konstanta harus diinisialisasi saat dideklarasikan. Contohnya:

class Calendar1
{
    public const int Months = 12;
}

Dalam contoh ini, konstanta Months selalu 12, dan tidak dapat diubah bahkan oleh class itu sendiri. Bahkan, ketika compiler menemukan identifier konstan dalam kode sumber C# (misalnya, Months), itu menggantikan nilai harfiah langsung ke dalam kode intermediate language (IL) yang dihasilkannya. Karena tidak ada alamat variabel yang terkait dengan konstanta pada run time, const bidang tidak dapat diteruskan oleh referensi dan tidak dapat muncul sebagai nilai l dalam expression.

Catatan

Berhati-hatilah saat Anda merujuk ke nilai konstanta yang ditetapkan dalam kode lain seperti DLL. Jika versi baru DLL menetapkan nilai baru untuk konstanta, program Anda masih akan menyimpan nilai harfiah lama sampai compile ulang terhadap versi baru.

Beberapa konstanta dengan tipe data yang sama dapat dideklarasikan pada saat yang sama, misalnya:

class Calendar2
{
    public const int Months = 12, Weeks = 52, Days = 365;
}

Expression yang digunakan untuk menginisialisasi konstanta dapat merujuk ke konstanta lain jika tidak membuat referensi berantai. 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 public, private, protected, internal, protected internal atau private protected. Modifier akses ini menetapkan bagaimana pengguna pada class dapat mengakses konstanta. Untuk informasi selengkapnya, lihat Pengubah Akses.

Konstanta diakses seolah-olah adalah bidang statis karena nilai konstanta sama untuk semua tipe instance. Anda tidak perlu menggunakan kata kunci static untuk mendeklarasikannya. Expression yang tidak berada di class yang menetapkan 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