O’zgaruvchilar — dasturlashning eng bazaviy tushunchasi. Har qanday ma’lumot — foydalanuvchi ismi, mahsulot narxi, hisob natijasi — o’zgaruvchida saqlanadi. C#’da o’zgaruvchi turi majburiy e’lon qilinadi; bu tilning qat’iyligi va ishonchliligining sababi.
O’zgaruvchi — xotiraning nomlangan, ma’lum turdagi qiymatni saqlaydigan qismi. C#’da har bir o’zgaruvchining turi oldindan aniqlanadi.
O’zgaruvchi e’lon qilish
C#’da o’zgaruvchi tur nom = qiymat; shaklida e’lon qilinadi:
using System;
int yosh = 26;
double narx = 15000.50;
string ism = "Master Sherkulov";
Console.WriteLine($"{ism}, {yosh} yosh");
Console.WriteLine($"Narx: {narx}");
Master Sherkulov, 26 yosh
Narx: 15000,5
Turni oldin yozish shart: int yosh — butun son, string ism — matn. E’tibor bering: ba’zi mintaqaviy sozlamalarda kasr ajratgich vergul bo’lishi mumkin (15000,5).
E’lon va qiymat berishni ajratish
O’zgaruvchini avval e’lon qilib, keyin qiymat berish mumkin:
using System;
int son; // e'lon qilindi
son = 42; // qiymat berildi
son = 100; // qiymat o'zgartirildi
Console.WriteLine(son);
100
Diqqat: C#’da qiymat berilmagan mahalliy o’zgaruvchini ishlatib bo’lmaydi — kompilyator xato beradi. Bu himoya “axlat” qiymatlardan saqlaydi.
var bilan qisqartirish
var kalit so’zi turni qiymatdan avtomatik aniqlaydi, biroq tur baribir qat’iy saqlanadi:
using System;
var ism = "Farrux"; // string
var yosh = 26; // int
Console.WriteLine($"{ism}: {yosh}");
Farrux: 26
var kodni qisqartiradi, ammo ism doim string bo’lib qoladi. Bu Python’ning dinamik turidan farq qiladi.
Turlar farqidan kelib chiqadigan natija
Turni chalkashtirish C#’da xatolarga olib keladi. Masalan, butun sonlar bo’lishida kasr qismi yo’qoladi:
using System;
int butun = 7 / 2; // butun bo'lish
double kasr = 7.0 / 2; // kasr bo'lish
Console.WriteLine($"butun: {butun}");
Console.WriteLine($"kasr: {kasr}");
butun: 3
kasr: 3,5
7 / 2 — ikkala son ham int bo’lgani uchun natija butun (3); 7.0 / 2 da esa double ishtirok etgani uchun aniq kasr chiqdi. Bu nozik farqni yodda tuting.
Xulosa
Bu bo’limda C#’da o’zgaruvchi e’lon qilish, turlarni belgilash, var bilan avtomatik aniqlash va tur farqidan kelib chiqadigan natijalarni ko’rib chiqdik. C#’da tur — qat’iy shartnoma. Keyingi darsda o’zgarmaslar — const ga o’tamiz.