Ada perdebatan di antara anggota tim saya tentang deklarasi kelas Konstanta. Kami memindahkan variabel konstan ke kelas terpisah seperti di bawah ini.
public class Constants
{
public const string StateId = "ST";
public const string CountryId = "CI";
}
Beberapa anggota tim saya menyarankan agar kami mendeklarasikan kelas sebagai disegel untuk menghindari opsi pengesampingan, dan beberapa menyarankan agar kami menandainya sebagai statis untuk menghindari pembuatan instance kelas Konstan.
Namun, saya lebih suka memilikinya sebagai Disegel dengan konstruktor statis, karena itu akan membantu kita untuk menginisialisasi variabel read-only dalam kebutuhan masa depan. Tolong beri kami saran tentang ini.
static
. Ini sepenuhnya ortogonal dengan ada atau tidak adanya konstruktor statis.Jawaban:
Tidak sepenuhnya jelas apa pertanyaan Anda, tetapi jika nilainya benar-benar konstan, saya tidak melihat masalah dengan opsi sederhana:
Menggunakan
static
dalam deklarasi kelas menandakan niat Anda untuk tujuan kelas ini.Marc Gravell menjelaskan beberapa masalah potensial dengan konstanta dalam jawaban Stack Overflow ini . Hanya Anda yang akan tahu apakah ini merupakan masalah dalam basis kode Anda, tetapi jika nilainya dapat berubah, gunakan
public static readonly
alih-alihconst
, jika tidak, kode apa pun yang merujuk ke konstanta perlu dibangun kembali jika nilainya berubah.sumber
const
, peningkatan kinerja biasanya tidak sebanding dengan risiko potensi masalah di masa depan, IMHO. Saya lebih suka menggunakanpublic static readonly
variabel untuk konstanta.