Darsliklar C# O`zgarmaslar

C# C# O`zgarmaslar

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.

consto’zgaruvchini o’zgarmas qiladigan kalit so’z. const bilan 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.