Darsliklar C# Ma’lumot turlari (tiplar)

C# C# Ma’lumot turlari (tiplar)

Ma’lumot turlari (tiplar) — C#’ning poydevoridagi eng muhim tushunchalardan biri. C# qat’iy tipizatsiyalangan til: har bir o’zgaruvchi aniq turga ega bo’lishi shart. Tur qiymat qancha xotira egallashini va u ustida qanday amallar bajarilishini belgilaydi.

Ma’lumot turiqiymatning tabiatini va hajmini belgilaydigan tasnif. C# turlari ikkiga bo’linadi: qiymat turlari (value types) va murojaat turlari (reference types).

Asosiy turlar

C#’ning eng ko’p ishlatiladigan turlarini jadvalda ko’ramiz:

Tur Nima saqlaydi Misol
int butun son 26
long katta butun son 9000000000
double kasr son 3.14
decimal aniq kasr (pul uchun) 15000.50m
char bitta belgi 'A'
bool rost/yolg’on true
string matn "UzbekDevs"

Turlarni amalda ko’rish

Har bir turni e’lon qilib, natijasini kuzatamiz:

using System;

int yosh = 26;
double narx = 15000.75;
char daraja = 'A';
bool faol = true;
string ism = "Master Sherkulov";

Console.WriteLine($"{ism}, {yosh} yosh");
Console.WriteLine($"Narx: {narx}, daraja: {daraja}, faol: {faol}");
Master Sherkulov, 26 yosh
Narx: 15000.75, daraja: A, faol: True

E’tibor bering: bool turdagi true ekranga bosh harf bilan True bo’lib chiqdi — bu C#’ning o’ziga xosligi.

Qiymat va murojaat turlari

C# turlari ikki katta guruhga bo’linadi. Farqni jadvalda ko’ramiz:

Xususiyat Qiymat turi Murojaat turi
Misol int, double, bool string, massiv, obyekt
Nima saqlaydi qiymatning o’zini obyekt manzilini
Xotira stack heap

var — turni avtomatik aniqlash

C# var kalit so’zi bilan turni qiymatdan avtomatik aniqlash imkonini beradi. Biroq baribir qat’iy tur saqlanadi:

using System;

var ism = "Farrux";   // string deb aniqlanadi
var yosh = 26;        // int deb aniqlanadi
Console.WriteLine($"{ism}: {yosh}");
Farrux: 26

var kodni qisqartiradi, ammo tur baribir belgilanadi — ism doim string bo’lib qoladi. Bu Python’ning dinamik turidan farq qiladi.

Turlarni o’tkazish (casting)

Bir turni boshqasiga aylantirish mumkin. Kichik turdan kattaga avtomatik, kattadan kichikka esa qo’lda:

using System;

int a = 7;
double b = a;          // avtomatik (int -> double)
double c = 9.8;
int d = (int)c;        // qo'lda (double -> int, kasr tashlanadi)
Console.WriteLine($"{b} {d}");
7 9

(int)c kasr qismini tashladi (9.8 -> 9). Bu qat’iy nazorat C#’ning aniqligini ta’minlaydi.

Xulosa

Bu bo’limda C#’ning asosiy turlarini, qiymat va murojaat turlari farqini, var bilan avtomatik aniqlashni va type casting’ni ko’rib chiqdik. Diqqat: pul bilan ishlashda aniqlik uchun decimal ishlating. Keyingi darsda identifikator — nomlash qoidalariga o’tamiz.