O’zgarmaslar (const) — bir marta belgilangach, qayta o’zgartirib bo’lmaydigan qiymatlar. Ba’zi qiymatlar tabiatan doimiy: pi soni, soliq stavkasi, hafta kunlari soni. Ularni o’zgarmas qilish tasodifan o’zgartirib yuborishdan himoya qiladi va kod maqsadini aniqroq ifodalaydi.
const — o’zgaruvchini o’zgarmas qiladigan kalit so’z.
constbilan e’lon qilingan qiymat kompilyatsiya vaqtida aniqlanadi va keyin o’zgartirilmaydi.
const kalit so’zi
O’zgarmas e’lon qilish uchun tur oldiga const qo’yiladi. Uni o’zgartirishga urinish kompilyatsiya xatosiga olib keladi:
using System;
const double PI = 3.14159;
const int KUNLAR = 7;
Console.WriteLine($"Pi: {PI}");
Console.WriteLine($"Haftada {KUNLAR} kun");
Pi: 3,14159
Haftada 7 kun
Agar keyin PI = 3; deb yozsangiz, kompilyator xato beradi. Aynan shu himoya const ning asosiy foydasidir. const qiymati e’lon paytida berilishi shart.
readonly — ish vaqtida o’rnatiladigan o’zgarmas
C#’da const dan tashqari readonly ham bor. Farqni jadvalda ko’ramiz:
| Xususiyat | const |
readonly |
|---|---|---|
| Qachon aniqlanadi | kompilyatsiya vaqtida | ish vaqtida |
| Qiymat berish | faqat e’londa | konstruktor ichida ham |
| Ishlatilishi | doimiy qiymatlar | obyektga bog’liq qiymatlar |
const — matematik doimiylar (pi) uchun; readonly — ish vaqtida hisoblanadigan, ammo keyin o’zgarmaydigan qiymatlar uchun.
Nega o’zgarmas ishlatish kerak?
const ning ikki muhim afzalligi bor: u xatoning oldini oladi va kodni o’qiladigan qiladi:
using System;
const double SOLIQ = 0.12;
double narx = 50000;
double soliqli = narx + narx * SOLIQ;
Console.WriteLine($"Soliqli narx: {soliqli}");
Soliqli narx: 56000
Agar soliq stavkasi o’zgarsa, uni faqat bitta joyda tuzatasiz — bu katta loyihalarda bebaho. C#’da konstantalar odatda PascalCase bilan yoziladi (SoliqStavkasi).
Xulosa
Bu bo’limda const bilan o’zgarmas qiymat e’lon qilish, readonly bilan farqini va o’zgarmasning afzalliklarini ko’rib chiqdik. const — kompilyatsiya vaqtidagi doimiylar, readonly — ish vaqtidagilar uchun. Keyingi darsda operatorlarga o’tamiz.