Rumah >pembangunan bahagian belakang >C++ >Const vs. Baca sahaja dalam C#: Bilakah Anda Harus Menggunakan Setiap?
Perbandingan Const dan Baca Sahaja dalam C#: Pemahaman mendalam
Dalam C#, const
dan readonly
digunakan untuk menentukan pemalar dan nilai baca sahaja, tetapi terdapat perbezaan yang ketara antara mereka. Berikut ialah perbezaan utama:
Kaedah pengisytiharan:
const
: mesti diberikan apabila diisytiharkan. readonly
: Boleh ditugaskan kemudian, tetapi mesti ditetapkan sebelum pembina menyelesaikan pelaksanaan. Lokasi storan:
const
: Nilai disimpan dalam memori masa kompilasi sebagai literal. readonly
: Nilai disimpan dalam memori masa jalan. Ciri statik:
const
: Statik tersirat (tidak boleh khusus contoh). readonly
: Boleh statik atau khusus contoh. Kaedah akses:
const
: Gunakan sintaks ClassName.ConstantName
untuk memetik. readonly
: Gunakan rujukan nama pembolehubah contoh. Kesan pada perhimpunan yang berkaitan:
const
: Benamkan ke dalam kod IL perhimpunan rujukan. Perubahan kepada pemalar memerlukan penyusunan semula perhimpunan yang dirujuk. readonly
: Dipelihara sebagai rujukan kepada lokasi ingatan. Perubahan dalam nilai disebarkan ke perhimpunan yang dirujuk tanpa penyusunan semula. Bila hendak digunakan:
const
: Untuk nilai yang diketahui pada masa penyusunan dan tidak akan berubah, seperti faktor penukaran atau pemalar yang diketahui. readonly
: Untuk nilai yang mungkin berubah semasa masa jalan atau memerlukan permulaan dinamik, seperti tetapan konfigurasi atau rujukan objek. Contoh:
Pertimbangkan kod berikut:
<code class="language-csharp">public class MyClass { public const int ConstValue = 2; public readonly int ReadOnlyValue; public MyClass() { ReadOnlyValue = 3; } }</code>
Dalam contoh ini, ConstValue
ialah pemalar masa kompilasi, tertanam dalam kod IL, manakala ReadOnlyValue
dimulakan pada masa jalan dan boleh dikemas kini kemudian. Jika ConstValue
ditukar pada masa hadapan, himpunan yang merujuk MyClass
perlu disusun semula, tetapi himpunan yang merujuk ReadOnlyValue
akan mendapat nilai yang dikemas kini secara automatik.
Dengan memahami perbezaan ini, anda boleh menggunakan const
dan readonly
dengan berkesan dalam kod C# untuk mentakrifkan pemalar dan nilai baca sahaja dengan sewajarnya.
Atas ialah kandungan terperinci Const vs. Baca sahaja dalam C#: Bilakah Anda Harus Menggunakan Setiap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!