O’zlashtirish operatsiyalarida almashtiruv tiplari Dasturlashda ko’p xollarda bir-biri bilan o’zlashtirilgan Qiymatlar Qo’llaniladi. Bunda dasturlovchi bir tipli Qiymatni ikkinchi tipga o’zlashtirib olishi mumkin. O’zlashtirish operatsiyalarida agar turli tipdagi ma’lumot Qo’llanilsa, tip bo’yicha o’zgaruvchi kattalik operatordan o’ng tomonda joylashadi va chap tomondagi o’zgaruvchi avtomatik tarzda almashtiriladi. C# tilida tiplar QattiQ boshQaruv ostida bo’ladi, lekin bu tiplar bir-biri bilan o’zaro bog’langan aloQada bo’ladi. BiroQ barcha tiplar xam o’zaro mutanosiblikka ega emas. Masalan bool va int tiplari nomutanosibdir. O’zlashtirish jarayonida bir tipga mansub ma’mot ikkinchi tip bilan Quyidagi xolatlarda amalga oshadi.
ikkala tiplar mutanosib bo’lsa
oxirgi tip (chap) boshlang’ich (o’ng) tipdan katta bo’lsa
Mazkur shartlar bajarilgan xolatlarda kengaytirilgan akslantirish amalga oshadi. Shunga Qaramay variabel tipidagi long va doable lar uchun avtomatik akslantirish mavjud bo’lib, bunda teskari avtomatik akslantirish yuz bermaydi va bu dastur noto’g’ri bo’ladi. YUQorida ko’rsatib o’tilgan cheklovlarga to’ldirish maQsadida yana shuni aytish lozimki, decimal yoki float va double tiplarida avtomatik akslantirish yuz bermaydi va o’zgaruvchi tiplar bir-biri bilan nomutanosib bo’ladi.
Nomutanosib tipli ma’lumot o’rtasida tartibga keltirish operatsiyalarini bajarish Avtomatik akslantirish juda Qulay bo’lishiga Qaramay, dasturlashning barcha talablariga javob bermaydi. Ularda faQatgina mutanosib tiplar uchun kengaytirilgan akslantirish mavjud. Tiplarni tartiblash – bir tip ma’lumotni ikkinchi tip ma’lumotga akslantiruvchi kompilyator instruksiyasidir. Tiplarni bunday akslantirish juda aniQlik bilan amalga oshadi. Tiplarni tartilash Quyidagicha sintaksisga ega bo’ladi:
(target-type) experesion Chekli tip (target-type) ifodani Qay tarzda tartibga keltirish ekanligini ifodalaydi. Agar xG’u ifodasini int ifodasi tarzida akslantirish kerak bo’lsa uni Quyidagicha yozish mumkin.
double.e.x.y,
G’G’
(int) (xG’y)
X va u o’zgaruvchilari double tipiga tegishli ekanligini xisobga olgan xolda, mazkur misolda tipni tartiblash ifodani int tipiga bo’lish orQali natija olingan. x va u uchun Qo’llanilgan yumaloQ Qavs katta axamiyatga ega. Aks xolda tipni tartiblash bo’lish natijasiga emas balki faQatgina x o’zgaruvchisiga tegishli bo’lib Qoladi xolos. Agar tipni tartiblashda jarayonida QisQartirilgan akslantirish yuz bersa ma’lumot oxiriga yetmay Qolishi (yo’Qotilishi) mumkin. Misol tariQasida long va int tipidagi ma’lumotlarni tartiblash jarayonida long tipiga xos ma’lumotlar int tipiga mos Qiymat chegarasidan (diapozon) chiQib ketadi va eski razryadli bitlar o’chib ketadi va ma’lumot o’chib ketadi. Quyida mazkur programmani ishlash prinsipi keltirilgan.
Dastur natijalarini Quyidagi ifodalash mumkin
Butun x,u ifodasi 00 ga teng
Qiymat b 00 ga teng
Qiymat b 1 ga teng
ch
Mazkur natijani tartiblash dasturida bo’lish natijasida ma’lumotni yo’Qotilishini kuzatishimiz mumkin. 257 o’zgaruvchisini o’zlashtirish jarayonida xam ma’lumot yo’Qotiladi, chunki 257 sonli belgilangan tip maksimumidan yuQoridir.