Kirish I bob. Nazariy qism


Download 48.08 Kb.
bet8/22
Sana02.01.2022
Hajmi48.08 Kb.
#188532
1   ...   4   5   6   7   8   9   10   11   ...   22
Bog'liq
OPERATORLARNI QAYTA YUKLASH 2

Oshkor tip almashtirish

Ayrim hollarda tiplarni almashtirish oshkor tarzda amalga oshiriladi. Quyidagi oshkormas tip almashtirish hollarda xatolik yuzaga keladi:

 int ni short ga – ma’lumot yo‘qotilishi mumkin

 int ni uint ga – ma’lumot yo‘qotilishi mumkin

 uint ni int ga – ma’lumot yo‘qotilishi mumkin

 float ni int ga – ma’lumot yo‘qotilishi mumkin

 ixtiyoriy sonli tipni char tipiga - ma’lumot yo‘qotilishi mumkin

 decimal ni boshqa ixtiyoriy sonli tipga – o‘nli tip boshqacha tashkil qilinganligi bois, ma’lumot yo‘qotilishi mumkin.


Bunday hollar uchun oshkor tip almashtirish qo‘llaniladi. Tipik sintaksisi quyidagicha:

qabul_qiluvchi =(qabul_qiluvchi_tipi) ifoda;

long a;

int b;


a = 2300;

b = (int)a;

Biror tip boshqasiga o‘tkazilganda, kompilyator ushbu amalni bajarishi lozim.

long a;

int b;

a = 2300000000;

b = (int)a;

Console.WriteLine(b);

Mana shu dastur qismi bajarilganda ekranda -1994967296 soni hosil bo‘ladi. Demak bu yerdan ko‘rinib turibdiki tiplarni almashtirganda shu tip diapozoniga tushadigan qiymatlarni o‘tkazish zarur aks holda xatolik yuz beradi. C# tilida checked operatori mavjud bo‘lib, stekning holatini aniqlash mumkin ya’ni xatolik yuz bergani to‘g‘risida xabar beradi.

long a;

int b;

a = 2300000;

b = checked((int)a); Tiplarni almashtirish xatoliklarni hosil qilishi mumkinligini inobatga olib, xatoliklarni qayta ishlovchi try...catch konstruksiyasidan foydalanish ham mumkin. Masalan:

long a;

int b;

a = 2300000000;

try {

b = checked((int)a);

Console.WriteLine(b);

}


catch {

Console.WriteLine("Tiplarni almashtirganda xatolik yuz berdi");

}

Quyidagi misolda suzuvchi nuqtali tipni butun son tipiga almashtirilyapti:



double d=10.23;

int i;


i = (int)(d + 2.4);

Keyingi misolda ishorasiz butun son char tipiga o‘tkaziladi:

ushort c = 38;

char sym = (char)c;

Console.WriteLine(sym);

Ekranga ASCII kodining 38-kodli & simvoli chiqariladi. Quyidagi misolda decimal qiymat char ga o‘tkazilgan:

decimal x = 105m;

char sim = (char) x;

Console.WriteLine(sim);// i harfi hosil bo‘ladi

char C = 'i';

decimal d = (decimal) s;

Console.WriteLine(d);// 105 qiymati qaytariladi

Agar hosil qilingan natija, yangi tipga o‘tkazilmasa, tip almashtirish baribir amalga oshiriladi. Ammo natija kutilayotgan qiymatni qaytarmaydi. Masalan,

int i = -1;

char symbol = (char) i;

Ushbu tip almashtirish amalga oshirilmasligi lozim. Ammo natija sifatida ? simvoli qaytariladi.

Agar sonli tipli qiymatni harfiy tipga o‘tkazish lozim bo‘lsa, .NET bibliotekasi klasslari metodlaridan foydalanish lozim. оbject klassi ToString() metodiga ega bo‘lib, ushbu amalni bajarish mumkin:

int i = 10;

string C = i.ToString();

Shuningdek, harfiy tipli qiymatni sonli tipga o‘tkazish uchun Parse() metodidan foydalaniladi:

string C = 100;

int i = int.Parse(s);

Console.WriteLine(i+50);


Converter klassi bir tipdan ikkinchi tipga o‘tkazuvchi metodlardan tashkil topgan bo‘lib ulardan quyidagilarni keltiramiz: Metod nomi


Download 48.08 Kb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   ...   22




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling