C# Type Casting (Ma'lumot turlarini o'zgartirish)
Type Casting — C# dasturlash tilida bir ma'lumot turini boshqa ma'lumot turiga o‘zgartirish jarayonidir. Type Casting dasturda ma'lumotlarni o‘zgartirish yoki moslashtirish zarur bo‘lgan vaziyatlarda qo‘llaniladi.
C# da Type Casting turlari
C# da Type Casting ikkiga bo‘linadi:
Implicit Casting (yashirin o‘zgartirish)
Kompilyator tomonidan avtomatik amalga oshiriladi.
Kichik turdagi ma'lumot katta turga aylantiriladi.
Ma'lumot yo‘qotilmaydi.
Misol:
int
→long
,float
→double
.
Explicit Casting (qo‘lda o‘zgartirish)
Dasturchi tomonidan amalga oshiriladi.
Katta turdagi ma'lumot kichik turga aylantiriladi.
Ma'lumot yo‘qotilishi mumkin.
Misol:
double
→int
.
Implicit Casting (Yashirin o‘zgartirish)
Tavsif:
Ma'lumotning kichik turidan kattaroq turiga avtomatik ravishda o‘tish.
Kompilyator bu o‘zgarishni avtomatik bajargani uchun hech qanday kod talab etilmaydi.
Misol:
Natija:
Izoh:
Bu yerda int
ma'lumot turi avtomatik ravishda double
turiga o‘zgartirildi, chunki double
int
dan kattaroq diapazonga ega.
Explicit Casting (Qo‘lda o‘zgartirish)
Tavsif:
Katta turdan kichik turga o‘zgartirish.
Bu o‘zgartirishni o‘zi bajarilmaydi, dasturchi tomonidan maxsus tarzda yozilishi kerak.
Ma'lumot yo‘qotilishi yoki aniqlik pasayishi mumkin.
Misol:
Natija:
Izoh:
Bu yerda double
qiymat (9.78
) int
turiga aylantirildi. Natijada o‘nlik kasr qismi (.78
) kesilib, faqat butun qismi qoldi.
Convert Class orqali Casting
C# da System.Convert
klassi yordamida turli ma'lumot turlarini aniqroq tarzda o‘zgartirish mumkin. Bu usul ma'lumot yo‘qotilish xavfini kamaytiradi va moslashtirishni osonlashtiradi.
Misol:
Natija:
Izoh:
Convert.ToInt32
funksiyasi string
turidagi qiymatni int
turiga o‘zgartirdi.
Parse va TryParse usullari
Parse
Parse
usuli yordamida matnni ma'lum bir ma'lumot turiga aylantirish mumkin. Lekin, noto‘g‘ri ma'lumot kiritsa, xatolik beradi.
Misol:
Natija:
TryParse
TryParse
usuli xatolarga bardoshli bo‘lib, o‘zgartirish muvaffaqiyatli bo‘lsa true
qaytaradi, aks holda false
.
Misol:
Natija:
Boxing va Unboxing
Boxing:
Qiymat turidagi ma'lumotni reference type (manzil turi) ga o‘zgartirish.
Misol:
Unboxing:
Manzil turidan qiymat turiga qaytarish.
Misol:
Type Casting jarayonining turlari va farqi
Tur
Usul
Xususiyatlari
Implicit Casting
Avtomatik (int
→ double
)
Kichik turdan katta turga. Ma'lumot yo‘qotilmaydi.
Explicit Casting
Qo‘lda (double
→ int
)
Katta turdan kichik turga. Ma'lumot yo‘qotilishi mumkin.
Convert Class
Convert.ToInt32
, Convert.ToString
Xatolarga bardoshliroq va moslashuvchan.
Parse va TryParse
int.Parse
, int.TryParse
Faqat matnni o‘zgartirish uchun ishlatiladi.
Boxing va Unboxing
Qiymat turidan manzil turiga va aksincha
Referensiyalar bilan ishlashda qo‘llaniladi.
Amaliy misol:
Natija:
Xulosa
Implicit Casting — kichikdan kattaga o‘zgartirish (ma'lumot yo‘qotilmaydi).
Explicit Casting — kattadan kichikka o‘zgartirish (ma'lumot yo‘qotilishi mumkin).
Convert Class — ma'lumotni aniqlik bilan o‘zgartirish uchun ishlatiladi.
Parse va TryParse — matnlarni ma'lumot turlariga aylantirishda qo‘llaniladi.
Boxing va Unboxing — qiymat va manzil turlarini o‘zaro o‘zgartirish imkoniyatini beradi.
Last updated