Mavzu: Arifmetik turlarni almashtirish Convert sinfi va uning metodlari Reja: Arifmetik turlarni almashtirish. Convert sinfi. Convert sinifi metodlari. Kirish
MAVZU: Arifmetik turlarni almashtirish Convert sinfi va uning metodlari
Reja:
Arifmetik turlarni almashtirish.
Convert sinfi.
Convert sinifi metodlari.
KIRISH
Ilmiy texnika rivojining diqqatga sazovor xususiyatlaridan biri - hisoblash
texnikasining inson faoliyatining barcha sohalariga keng miqyosida tatbiq
qilinishidir. Xalq xo’jaligining rivoji o’z navbatida yuqori unumli elektron
hisoblash mashinalarini (EHM), raqamli-programmali boshqariladigan stanoklar va qurilmalar, sanoat robotlari va ishlab chiqarish modullarini ishlab chiqarishni ko’paytirish va keng miqyosda tatbiq etishni talab etadi. Avtomatlashtirishning asosiy quroli bo’lib, o’zining algoritmik va programma ta’minotiga ega bo’lgan kompyuterlar xizmat qiladi. Dvigatelva robotlarning kashf qilinishi jismoniy mehnatni avtomatlashtirish asrini ochgan bo’lsa, kompyuter va sun’iy intellekt vositalarning paydo bo’lishi inson aqliy faoliyatida xuddi shunday yangi davrni boshlab berdi. Aхborot teхnologiyalari jahonda jadal sur'atlar bilan rivojlanib, takomillashib borayotgan sohadir. Bu sohaning rivoji uchun bizning buyuk ajdodlarimizning ilmiy kashfiyotlari asos bo’lib хizmat qilmoqda. Bu haqda Prezidentimiz I.A.Karimov o’zining "Yuksak ma'naviyat - yengilmas kuch" asarida quyidagi fikrlarni keltirib o’tadi: "Shu nuqtai nazardan qaraganda, zaminimizda yashab o’tgan buyuk allomalarimiz, mutafakkir bobolarimizning ibratli hayoti va faoliyati, bemisl ilmiy-ijodiy kashfiyotlari bugun ham jahon ahlini hayratga solayotganini g’urur bilan ta'kidlash lozim‖. Xususiy kompyuterlarning paydo bo’lishi informatikani tatbiq etish va "kompyuter bo’yicha savodsizlik"ni tugatishni tezlatishga asosiy turtki bo’ldi.
Arifmetik turidagi konversiyalar uchun siz quyma turdagi kastingdan foydalanishingiz mumkin. Satr turini skalar turiga aylantirish uchun Parse usuli va teskari yo'nalishda ToString usulidan foydalanishingiz mumkin. O'rnatilgan bitta bazadan boshqa bazaviy turga o'girishingiz kerak bo'lgan barcha holatlarda, statik usullari konversiyani bajarish uchun maxsus ishlab chiqilgan umumiy sinf bo'lgan tizim nomlari maydoniga o'rnatilgan FCL ning Convert sinfining usullaridan foydalanishingiz mumkin. Convert sinfining boshqa usullari qatorida ob'ektni ma'lum bir turga aylantirishga imkon beradigan ChangeType umumiy statik usulini qayd etaman. Bundan tashqari, DateTime tizim turiga o'tish imkoniyatini ham ta'kidlayman, bu C # tilining asosiy turi bo'lmasa ham, boshqa har qanday tizim turi singari dasturlarda ham ruxsat etiladi. Turli konversiyalarni aniqlash usullaridan tashqari, Convert klassida boshqa usullar mavjud, masalan, Unicode belgilaridan bitta baytli ASCII ga o'tkazish, massivlar bilan bog'liq konversiyalar va boshqa usullar. Tafsilotlarni yordam tizimida topishingiz mumkin. Convert sinfining usullari turlar orasidagi konversiyani amalga oshirishning umumiy usulini qo'llab-quvvatlaydi. Convert sinfi To (ToBoolean (),… ToUInt64 ()) shaklining 15 statik usulini o'z ichiga oladi, bu erda Type 3.1-jadvalda keltirilgan barcha o'rnatilgan turlar uchun Boolean dan UInt64 gacha bo'lishi mumkin. Istisno faqat ob'ekt turi - aniq sabablarga ko'ra ToObject usuli mavjud emas, chunki barcha turdagi ob'ekt turiga yopiq konvertatsiya mavjud. Ushbu 15 usulning har biri haddan tashqari yuklangan va uning x argumenti aytib o'tilgan turlarning har biri bo'lishi mumkin. Haddan tashqari yukni hisobga olgan holda, ushbu sinfning usullaridan foydalangan holda siz biron biridan ikkinchisiga mumkin bo'lgan konversiyalarni bajarishingiz mumkin. Barcha usullar tekshiriladigan konversiyani amalga oshiradi va konversiyani amalga oshirish mumkin bo'lmaganda yoki konversiyani amalga oshirishda aniqlik yo'qolganda istisno qo'yadi. Mana bir misol:
///
/// Convert sinfining sinov usullari
///
ommaviy bekor ConvertTest ()
{string s;
bayt b;
int n;
er-xotin x;
bool bayrog'i;
char sim;
DateTime dt;
sym = '7';
s = Convert.ToString (sim);
x = Convert.ToDouble (lar);
n = Convert.ToInt32 (x);
b = Convert.ToByte (n);
flag = Convert.ToBoolean (b);
x = Convert.ToDouble (bayroq);
s = Convert.ToString (bayroq);
// sym = Convert.ToChar (bayroq);
s = "300";
n = Convert.ToInt32 (s);
// b = Convert.ToByte (lar);
s = "14.09";
// bayroq = Convert.ToBoolean (lar);
// x = Convert.ToDouble (lar);
s = "14.09.2008";
dt = Convert.ToDateTime (lar); }
Ushbu misol turlarning turli xil konversiyalarini namoyish etadi. Ushbu konversiyalarning barchasi xavfli bo'lib, ular Convert sinfining usullari yordamida aniq amalga oshiriladi. Dastlab, belgilar turidagi ma'lumotlar satrga aylantiriladi. Keyin ushbu ma'lumotlar haqiqiy turga aylantiriladi, so'ngra konversiyalar arifmetik tur ichida turni ikki martadan baytgacha kamaytirish bilan amalga oshiriladi. So'nggi konvertatsiya misoli - string ma'lumotlarini DateTime-ga aylantirish. Bir turdan ikkinchisiga xavfli konversiyalar ba'zi ma'lumotlarda muvaffaqiyatli bajarilishi va boshqa ma'lumotlar bilan xatolikka olib kelishi mumkin. Bizning misolimizda ish vaqtidagi xatolarga olib keladigan bayonotlar izohlanadi. Birinchi xato ma'lumotni mantiqiy turdan belgi turiga o'tkazishga urinishda paydo bo'ladi, chunki qiymatni ba'zi bir belgiga (masalan, T) haqiqiy qiymatga aylantiradigan konversiya mavjud emas. Oldingi bayonotlarda xuddi shu ma'lumotlar mag'lubiyatga va arifmetik turlarga muvaffaqiyatli o'tkazilganligiga e'tibor bering. Quyidagi xato, 300 qiymatli mag'lubiyatni bayt yozish uchun o'zgartirishga urinayotganda paydo bo'ladi. Tegishli usul mag'lubiyatga yozilgan qiymat konversiya maqsadini ko'rsatadigan tur uchun juda katta ekanligini tan oladi.Mantiqiy va soxta mantiqiy konstantalardan tashqari boshqa qatorni mantiqiy turga o'tkazishga urinayotganda yana bir xato yuz beradi. Ushbu misoldagi so'nggi xato amalda juda keng tarqalgan. Bu raqamning kasr qismini ajratish uchun vergul o'rniga nuqta noto'g'ri ishlatilganligi bilan bog'liq. Qanday xulosalar qilish kerak? Convert sinfining usullari bilan amalga oshiriladigan xavfli konversiyalar haqiqatan ham xavfli. Shu sababli, ular har doim qo'riqlanadigan blokga joylashtirilishi va mumkin bo'lgan istisnoga qarshi bloklar yaratilishi kerak. Vaziyatni ko'rib chiquvchi ikkita muhim vazifani bajarishi kerak. Ulardan birinchisi informatsion bo'lib, unda yuzaga kelgan xato tavsifi bilan etarlicha batafsil ma'lumot berilishi kerak. Ikkinchi vazifa ham bir xil darajada muhimdir. Dasturchi normal ishlashni davom ettirishi uchun ishlov beruvchi vaziyatni to'g'rilashga harakat qilishi kerak. Bu, masalan, foydalanuvchiga noto'g'ri ko'rsatilgan ma'lumotlarni qayta kiritishga, vaziyatni to'g'irlash uchun qo'shimcha modulni chaqirishga imkon berishi kerak. Har holda, ishni tiklash bo'yicha choralar boshqacha bo'lishi mumkin.Turlarni almashtirish
T(v) ifoda v qiymatni T turga o'tkazadi.
Ba'zi sonli tur o'zgartirishlar:
var i int = 42 var f float64 = float64(i) var u uint = uint(f)
Yoki yanada soddaroq ko'rinishda:i := 42 f := float64(i) u := uint(f)
C dagidan farqli ravishda Go da farqli turlar elementlari orasida biriktirishda aniq turga o'tkazish talab qilinadi. Misoldagi float64 yoki int o'tkazishlarni o'chiring va nima yuz berishini ko'ring.
type-conversions.goSintaksis
package main
import (
"fmt"
"math")
func main() {
var x, y int = 3, 4
var f float64 = math.Sqrt(float64(x*x + y*y))
var z int = int(f)
fmt.Println(x, y, z)}
Arifmetik turidagi konversiyalar uchun siz quyma turdagi kastingdan foydalanishingiz mumkin. Satr turini skalar turiga aylantirish uchun Parse usuli va teskari yo'nalishda ToString usulidan foydalanishingiz mumkin. O'rnatilgan bitta bazadan boshqa bazaviy turga o'girishingiz kerak bo'lgan barcha holatlarda, statik usullari konversiyani bajarish uchun maxsus ishlab chiqilgan umumiy sinf bo'lgan tizim nomlari maydoniga o'rnatilgan FCL ning Convert sinfining usullaridan foydalanishingiz mumkin. Convert sinfining boshqa usullari qatorida ob'ektni ma'lum bir turga aylantirishga imkon beradigan ChangeType umumiy statik usulini qayd etaman. Bundan tashqari, DateTime tizim turiga o'tish imkoniyatini ham ta'kidlayman, bu C # tilining asosiy turi bo'lmasa ham, boshqa har qanday tizim turi singari dasturlarda ham ruxsat etiladi. Turli konversiyalarni aniqlash usullaridan tashqari, Convert klassida boshqa usullar mavjud, masalan, Unicode belgilaridan bitta baytli ASCII ga o'tkazish, massivlar bilan bog'liq konversiyalar va boshqa usullar. Tafsilotlarni yordam tizimida topishingiz mumkin.
C # Math.Round usuli
Ushbu C # misol dasturlari .NET Framework-dan Math.Round usulini ko'rsatadi. MidpointRounding qoplanadi.Math.Round raqamlarni eng yaqin qiymatga aylantiradi. U kerakli sonli raqamlarni oladi. Ushbu statik usul ikki va o'nli turlarni yaxlitlashning aniq usulini beradi. Bu xatolar xavfini kamaytiradi.
Statik usul Misol. Birinchidan, Math.Round bir nechta ortiqcha yuklarga va MidpointRounding sanab o'tilgan doimiylarda aniqlangan ikkita yaxlitlash rejimiga ega. Bu erda biz ikkita va o'nlik turlarga misol keltiramiz. Math.Round nima turli xil argumentlar bilan qaytishini ko'ramiz.Haddan tashqari yuklash IkkilikDecimals Math.Round ishlatadigan C # dasturi tizim yordamida; sinf dasturi Convert sinfining usullari turlar orasidagi konversiyani amalga oshirishning umumiy usulini qo'llab-quvvatlaydi. Convert sinfi To (ToBoolean (),… ToUInt64 ()) shaklining 15 statik usulini o'z ichiga oladi, bu erda Type 3.1-jadvalda keltirilgan barcha o'rnatilgan turlar uchun Boolean dan UInt64 gacha bo'lishi mumkin. Istisno faqat ob'ekt turi - aniq sabablarga ko'ra ToObject usuli mavjud emas, chunki barcha turdagi ob'ekt turiga yopiq konvertatsiya mavjud. Ushbu 15 usulning har biri haddan tashqari yuklangan va uning x argumenti aytib o'tilgan turlarning har biri bo'lishi mumkin.
using System;
class Program{
static void Main(){
// Round double type in three ways.
double before1 = 123.45;
Double .after1=Math.Round(before1, 1, MidpointRounding.AwayFromZero); // Rounds "up"
double after2 = Math.Round(before1, 1, MidpointRounding.ToEven); // Rounds to evendouble after3 = Math.Round(before1);
Console.WriteLine(before1); // Original
Console.WriteLine(after1);
Console.WriteLine(after2);
Console.WriteLine(after3);
// Round decimal type.
decimal before2 = 125.101M;
decimal after4 = Math.Round(before2);
decimal after5 = Math.Round(before2, 1);
Console.WriteLine(before2); // Original
Console.WriteLine(after4);
Console.WriteLine(after5); }}
Output
MidpointRounding.AwayFromZero
MidpointRounding.ToEven
Haddan tashqari yukni hisobga olgan holda, ushbu sinfning usullaridan foydalangan holda siz biron biridan ikkinchisiga mumkin bo'lgan konversiyalarni bajarishingiz mumkin. C # Math.Round usuli Ushbu C # misol dasturlari .NET Framework-dan Math.Round usulini ko'rsatadi. MidpointRounding qoplanadi. Math.Round raqamlarni eng yaqin qiymatga aylantiradi. U kerakli sonli raqamlarni oladi. Ushbu statik usul ikki va o'nli turlarni yaxlitlashning aniq usulini beradi. Bu xatolar xavfini kamaytiradi. Statik usul Misol. Birinchidan, Math.Round bir nechta ortiqcha yuklarga va MidpointRounding sanab o'tilgan doimiylarda aniqlangan ikkita yaxlitlash rejimiga ega. Bu erda biz ikkita va o'nlik turlarga misol keltiramiz. Math.Round nima turli xil argumentlar bilan qaytishini ko'ramiz. Haddan tashqari yuklash IkkilikDecimals Math.Round ishlatadigan C # dasturi tizim yordamida; sinf dasturi { statik bo'shliq Asosiy () { // // Uch usulda dumaloq juftlik turi. // bundan oldin ikki barobar1 = 123,45; double after1 = Math.Round (oldin1, 1, MidpointRounding.AwayFromZero); // "yuqoriga" aylanadi double after2 = Math.Round (oldin1, 1, MidpointRounding.ToEven); // Juftga aylanadi double after3 = Math.Round (oldin1); Console.WriteLine (oldin1); // Original Console.WriteLine (after1); Console.WriteLine (after2); Console.WriteLine (after3); // // Dumaloq o'nlik turi. // o‘nlikdan oldin2 = 125.101M; o'nlikdan keyin4 = Math.Round (oldin2); o'nlikdan keyin 5 = Math.Round (oldin2, 1); Console.WriteLine (oldin2); // Original Console.WriteLine (after4); Console.WriteLine (after5); } } Chiqish 123.45 123.5 <- MidpointRounding.AwayFromZero 123.4 <- MidpointRounding.ToEven 123 125.101 125 125.1 Math.Round usuli bir necha marta chaqiriladi. .NET Framework o'nlik va ikkilamchi turlarni ajratib turishi sababli, eng yaxshi ortiqcha yuklanishlar avtomatik ravishda tanlanadi. Siz Math.Round-ga bitta-uchta argument bilan qo'ng'iroq qilishingiz mumkin. Barcha usullar tekshiriladigan konversiyani amalga oshiradi va konversiyani amalga oshirish mumkin bo'lmaganda yoki konversiyani amalga oshirishda aniqlik yo'qolganda istisno qo'yadi. Mana bir misol:
///
/// Convert sinfining sinov usullari
///
ommaviy bekor ConvertTest (){
string s;
bayt b;
int n;
er-xotin x;
bool bayrog'i;
char sim;
DateTime dt;
sym = '7';
s = Convert.ToString (sim);
x = Convert.ToDouble (lar);
n = Convert.ToInt32 (x);
b = Convert.ToByte (n);
flag = Convert.ToBoolean (b);
x = Convert.ToDouble (bayroq);
s = Convert.ToString (bayroq);
// sym = Convert.ToChar (bayroq);
s = "300";
n = Convert.ToInt32 (s);
// b = Convert.ToByte (lar);
s = "14.09";
// bayroq = Convert.ToBoolean (lar);
// x = Convert.ToDouble (lar);
s = "14.09.2008";
dt = Convert.ToDateTime (lar);} Ushbu misol turlarning turli xil konversiyalarini namoyish etadi. Ushbu konversiyalarning barchasi xavfli bo'lib, ular Convert sinfining usullari yordamida aniq amalga oshiriladi. Dastlab, belgilar turidagi ma'lumotlar satrga aylantiriladi. Keyin ushbu ma'lumotlar haqiqiy turga aylantiriladi, so'ngra konversiyalar arifmetik tur ichida turni ikki martadan baytgacha kamaytirish bilan amalga oshiriladi. So'nggi konvertatsiya misoli - string ma'lumotlarini DateTime-ga aylantirish. Bir turdan ikkinchisiga xavfli konversiyalar ba'zi ma'lumotlarda muvaffaqiyatli bajarilishi va boshqa ma'lumotlar bilan xatolikka olib kelishi mumkin. Bizning misolimizda ish vaqtidagi xatolarga olib keladigan bayonotlar izohlanadi. Birinchi xato ma'lumotni mantiqiy turdan belgi turiga o'tkazishga urinishda paydo bo'ladi, chunki qiymatni ba'zi bir belgiga (masalan, T) haqiqiy qiymatga aylantiradigan konversiya mavjud emas. Oldingi bayonotlarda xuddi shu ma'lumotlar mag'lubiyatga va arifmetik turlarga muvaffaqiyatli o'tkazilganligiga e'tibor bering. Quyidagi xato, 300 qiymatli mag'lubiyatni bayt yozish uchun o'zgartirishga urinayotganda paydo bo'ladi. Tegishli usul mag'lubiyatga yozilgan qiymat konversiya maqsadini ko'rsatadigan tur uchun juda katta ekanligini tan oladi.Mantiqiy va soxta mantiqiy konstantalardan tashqari boshqa qatorni mantiqiy turga o'tkazishga urinayotganda yana bir xato yuz beradi. Ushbu misoldagi so'nggi xato amalda juda keng tarqalgan. Bu raqamning kasr qismini ajratish uchun vergul o'rniga nuqta noto'g'ri ishlatilganligi bilan bog'liq.Qanday xulosalar qilish kerak? Convert sinfining usullari bilan amalga oshiriladigan xavfli konversiyalar haqiqatan ham xavfli. Shu sababli, ular har doim qo'riqlanadigan blokga joylashtirilishi va mumkin bo'lgan istisnoga qarshi bloklar yaratilishi kerak. Vaziyatni ko'rib chiquvchi ikkita muhim vazifani bajarishi kerak. Ulardan birinchisi informatsion bo'lib, unda yuzaga kelgan xato tavsifi bilan etarlicha batafsil ma'lumot berilishi kerak. Ikkinchi vazifa ham bir xil darajada muhimdir. Dasturchi normal ishlashni davom ettirishi uchun ishlov beruvchi vaziyatni to'g'rilashga harakat qilishi kerak. Bu, masalan, foydalanuvchiga noto'g'ri ko'rsatilgan ma'lumotlarni qayta kiritishga, vaziyatni to'g'irlash uchun qo'shimcha modulni chaqirishga imkon berishi kerak. Har holda, ishni tiklash bo'yicha choralar boshqacha bo'lishi mumkin. Asosiy turlarga va undan qaytishga o'tishKonvertatsiya qilish usuli har bir asosiy turni har qanday boshqa asosiy turga aylantirish uchun mavjud. Shu bilan birga, ma'lum bir konversiya uslubiga haqiqiy qo'ng'iroq, ish vaqtidagi asosiy turdagi qiymat va maqsadli tayanch turiga qarab, beshta natijadan birini keltirib chiqarishi mumkin. Ushbu beshta natijalar:Konvertatsiya qilinmaydi. Bu turdan o'ziga o'girishga harakat qilinganida sodir bo'ladi (masalan, Convert.ToInt32 (Int32) ni Int32 turidagi argument bilan chaqirish orqali). Bunday holda, usul oddiy turdagi asl nusxani qaytaradi.InvalidCastException. Bu ma'lum bir konversiyani qo'llab-quvvatlamaganda sodir bo'ladi. InvalidCastException quyidagi konversiyalar uchun tashlanadi:
Char dan Boolean, Single, Double, Decimal yoki DateTime-ga o'tkazish.
Boolean, Single, Double, Decimal yoki DateTime-dan Char-ga o'tkazish.DateTime-dan String-dan tashqari har qanday boshqa turga o'tkazish.Stringdan tashqari har qanday boshqa turdagi DateTime-ga o'tkazish.FormatException. Bu satr qiymatini boshqa har qanday asosiy turga aylantirish urinishi muvaffaqiyatsiz tugaganda sodir bo'ladi, chunki satr to'g'ri formatda emas. Istisno quyidagi konversiyalar uchun belgilanadi:Mantiqiy qiymatga o'tkaziladigan satr Boolean.TrueString yoki Boolean.FalseString ga teng bo'lmaydi.Char qiymatiga o'tkaziladigan qator bir nechta belgidan iborat.Har qanday raqamli turga o'tkaziladigan satr haqiqiy raqam sifatida tan olinmaydi. DateTime-ga o'tkaziladigan satr haqiqiy sana va vaqt qiymati sifatida tan olinmaydi. Muvaffaqiyatli konvertatsiya. Oldingi natijalarda ko'rsatilmagan ikki xil bazaviy turdagi konversiyalar uchun barcha kengaytirilgan konversiyalar va shuningdek, ma'lumotlarning yo'qolishiga olib kelmaydigan barcha toraytirilgan konversiyalar muvaffaqiyatli bo'ladi va usul maqsadli tayanch turining qiymatini qaytaradi. OverflowException. Bu toraytirilgan konvertatsiya ma'lumotlarning yo'qolishiga olib keladigan bo'lsa sodir bo'ladi. Masalan, qiymati 10000 bo'lgan Int32 nusxasini bayt turiga aylantirishga urinish OverflowExceptionni tashlaydi, chunki 10000 bayt ma'lumotlar turi doirasidan tashqarida.
Turli konversiyalarni aniqlash usullaridan tashqari, Convert klassida boshqa usullar mavjud, masalan, Unicode belgilaridan bitta baytli ASCII ga o'tkazish, massivlar bilan bog'liq konversiyalar va boshqa usullar. Tafsilotlarni yordam tizimida topishingiz mumkin.Convert sinfining usullari turlar orasidagi konversiyani amalga oshirishning umumiy usulini qo'llab-quvvatlaydi. Convert sinfi To (ToBoolean (),… ToUInt64 ()) shaklining 15 statik usulini o'z ichiga oladi, bu erda Type 3.1-jadvalda keltirilgan barcha o'rnatilgan turlar uchun Boolean dan UInt64 gacha bo'lishi mumkin. Istisno faqat ob'ekt turi - aniq sabablarga ko'ra ToObject usuli mavjud emas, chunki barcha turdagi ob'ekt turiga yopiq konvertatsiya mavjud. Ushbu 15 usulning har biri haddan tashqari yuklangan va uning x argumenti aytib o'tilgan turlarning har biri bo'lishi mumkin. Haddan tashqari yukni hisobga olgan holda, ushbu sinfning usullaridan foydalangan holda siz biron biridan ikkinchisiga mumkin bo'lgan konversiyalarni bajarishingiz mumkin. Barcha usullar tekshiriladigan konversiyani amalga oshiradi va konversiyani amalga oshirish mumkin bo'lmaganda yoki konversiyani amalga oshirishda aniqlik yo'qolganda istisno qo'yadi. Mana bir misol:
///
/// Convert sinfining sinov usullari
///
ommaviy bekor ConvertTest (){
string s;
bayt b;
int n;
bool bayrog'i;
char sim;
DateTime dt;
sym = '7';
s = Convert.ToString (sim);
x = Convert.ToDouble (lar);
n = Convert.ToInt32 (x);
b = Convert.ToByte (n);
flag = Convert.ToBoolean (b);
x = Convert.ToDouble (bayroq);
s = Convert.ToString (bayroq);
// sym = Convert.ToChar (bayroq);
s = "300";
n = Convert.ToInt32 (s);
// b = Convert.ToByte (lar);
s = "14.09";
// bayroq = Convert.ToBoolean (lar);
// x = Convert.ToDouble (lar);
s = "14.09.2008";
dt = Convert.ToDateTime (lar); }
Ushbu misol turlarning turli xil konversiyalarini namoyish etadi. Ushbu konversiyalarning barchasi xavfli bo'lib, ular Convert sinfining usullari yordamida aniq amalga oshiriladi. Dastlab, belgilar turidagi ma'lumotlar satrga aylantiriladi.
Keyin ushbu ma'lumotlar haqiqiy turga aylantiriladi, so'ngra konversiyalar arifmetik tur ichida turni ikki martadan baytgacha kamaytirish bilan amalga oshiriladi. So'nggi konvertatsiya misoli - string ma'lumotlarini DateTime-ga aylantirish.Bir turdan ikkinchisiga xavfli konversiyalar ba'zi ma'lumotlarda muvaffaqiyatli bajarilishi va boshqa ma'lumotlar bilan xatolikka olib kelishi mumkin. Bizning misolimizda ish vaqtidagi xatolarga olib keladigan bayonotlar izohlanadi. Birinchi xato ma'lumotni mantiqiy turdan belgi turiga o'tkazishga urinishda paydo bo'ladi, chunki qiymatni ba'zi bir belgiga (masalan, T) haqiqiy qiymatga aylantiradigan konversiya mavjud emas. Oldingi bayonotlarda xuddi shu ma'lumotlar mag'lubiyatga va arifmetik turlarga muvaffaqiyatli o'tkazilganligiga e'tibor bering. Quyidagi xato, 300 qiymatli mag'lubiyatni bayt yozish uchun o'zgartirishga urinayotganda paydo bo'ladi.
Tegishli usul mag'lubiyatga yozilgan qiymat konversiya maqsadini ko'rsatadigan tur uchun juda katta ekanligini tan oladi.Mantiqiy va soxta mantiqiy konstantalardan tashqari boshqa qatorni mantiqiy turga o'tkazishga urinayotganda yana bir xato yuz beradi. Ushbu misoldagi so'nggi xato amalda juda keng tarqalgan. Bu raqamning kasr qismini ajratish uchun vergul o'rniga nuqta noto'g'ri ishlatilganligi bilan bog'liq.Qanday xulosalar qilish kerak? Convert sinfining usullari bilan amalga oshiriladigan xavfli konversiyalar haqiqatan ham xavfli. Shu sababli, ular har doim qo'riqlanadigan blokga joylashtirilishi va mumkin bo'lgan istisnoga qarshi bloklar yaratilishi kerak. Vaziyatni ko'rib chiquvchi ikkita muhim vazifani bajarishi kerak. Ulardan birinchisi informatsion bo'lib, unda yuzaga kelgan xato tavsifi bilan etarlicha batafsil ma'lumot berilishi kerak. Ikkinchi vazifa ham bir xil darajada muhimdir.
Xulosa Hozirgi kunda C# dasturlash tili yuqori bosqichli dasturlash tillari ichida eng samarali dasturlash tillaridan hisoblanadi. C# dasturlash tilida dastur tuzish uchun Visual Studio 2010 muhitidan foydalanamiz. C# dasturlash tili obektga mo’ljallangan . Birinchi bob 3 ta bo’limdan iborat. Birinchi bo’limda arifmetik turlarni almashtirish haqida ma’lumotlar keltirilgan. Ikkinchi bo’limda C# tilida Convert sinfi haqida ma’lumotlar keltirilgan. Convert sinfiga misollar keltirilgan. Convert sinfida ishlash unda dasturchiga qulay usullari haqida tushuntirib berilgan. Bundan tashqari har bir operatorning funksional imkoniyatlari misollar orqali tushuntirib berilgan.Ushbu kurs ishimda Convert sinfi va uning metodlari haqida ma‘lumot berib o‘tilgan.Convert sinfi metodlari turlari ularning foydalanishi tartibi haqida yuqoridagi aytib o‘tilgan. Xulosa qilib shuni aytib o‘tish mumkinki Convert sinfi va uning metodlari har bir dasturlash muhitida katta rol o‘ynaydi.
Ushbu ishda keltirilgan ma‘lumotlardan C# tilida Convert sinfi va matodlariga bog‘liq imkoniyatlarini qo‘llashni yo‘lga qo‘yishni , ya‘ni kengroq o‘rganishni istovchilarning faydalanishlari yaxshi natija beradi deb hisoblaymiz.
Dostları ilə paylaş: |