Salam
İlk yaz ayında növbəti C# dərsimizə başlayırıq.
C# dərsləri. 7-cı dərs.
Keçən dərsimizdə biz sətir tipi ilə ədəd tiplərinin münasibətini aydınlaşdırırdıq.
Bu dərsimizdə mən sizə söz verdiyim kimi, universal bir funksiyanı öyrədəcəm. Bu Convert adlı obyektin bizə yaratdığı imkanlarıdır.
Gəlin bu kodu yazaq.
Proqramı işə salırıq:
İndi isə bu kodu yoxlayaq:
string setir = Convert.ToString(10);
Nəticəyə nəzər yetirək:
Əla. İstədiklərimiz alındı. Bəs deyəcəksiniz ki, elə nöqtəToString() vasitəsi ilə də bunu əldə etmişdik. Və o kod daha qısa idi. Tamamilə düzdür. Bu həqiqətəndə belədir. Və sətirə çevirəndə yalnız nöqtəToString() -dən istifadə olunur.
Lakin mən qeyd elədiyim kimi, Convert universal bir alətdir. Bəs sətiri ədədə çevirmək istəsək. Burada bizim köməyimizə Convert gəlir.
Gəlin yazaq.
Nəticəyə baxaq:
Alındı. Amma ...
Diqqətli oxuyucular mütləq fikir verəcəklər ki, burada mən setir adlı dəyişənə "5.65" yox, "5,65" qiyməti verdim. Diqqət edin bu qaydaya: Bunun səbəbi nədir? Səbəb ondadır ki, adi halda C# dili ingilis formatı (rəqəm, tarix və s.) ilə işləyir. Və bu formatlar millətlər arası fərqlənir. Misal üçün mənim kompüterimdə XP-nin rus variantı instal olunub. Deməli kompüterim rəqəmlərin rus format variantı ilə işləyir. Ona görə də biz əvvəllərdə proqramda 5.65 yazırdıq, amma ekrana (rus Windows əməliyyat sisteminin konsol ekarnına) 5,65 çıxırdı.
Bəs nə etməli?
Birinci yol budur. Özümüz diqqət edək və sətiri ədədə çevirəndə dırnaq arası əməliyyat sisteminə uyğun nöqtə və ya vergül yazaq. Misal üçün axırıncı kodumuzda mən öz kompüterimdə
setir = "5.65";
yazsaydım, proqram səhv barədə mənə məlumat verərdi.
Lakin C# çox ağıllı bi dildir, və bizə lazım olan bütün imkanları yaradır. Sadəcə bir az öyrənməliyik.
Bizə kömək edən alət IFormatProvider interfeysi olacaq. İnterfeys barədə biz hələ söhbət açmayacayıq. Sadəcə bu millətlər arası format problemini həll edən alətdir. Burada biz onun aşağıda qeyd olunan bir metodunu əzbərləyəcəyik.
System.Globalization.CultureInfo.InvariantCulture
Gəlin bu kodu yazaq
Yoxlayaq:

Alındı. Düzdür, ekranda yenə də vergül işarəsi qaldı, lakin biz artıq kodda 5.65 standart ingilis variantını verə bildik.
Bu dərsimizi burada tamamlayaq və növbəti dərsimizdə mövzunu davam etdirəcəyik.
7-ci dərsin sonu.
Bu dərsimizdə mən sizə söz verdiyim kimi, universal bir funksiyanı öyrədəcəm. Bu Convert adlı obyektin bizə yaratdığı imkanlarıdır.
Gəlin bu kodu yazaq.
int tamEded = 10;
string setir = Convert.ToString(tamEded);
Console.WriteLine(setir);
double kesrEded = 5.45;
setir = Convert.ToString(kesrEded);
Console.WriteLine(setir);
Console.ReadKey();
Proqramı işə salırıq:
İndi isə bu kodu yoxlayaq:
string setir = Convert.ToString(10);
Console.WriteLine(setir);
setir = Convert.ToString(5.65);
Console.WriteLine(setir);
Console.ReadKey();
Nəticəyə nəzər yetirək:
Əla. İstədiklərimiz alındı. Bəs deyəcəksiniz ki, elə nöqtəToString() vasitəsi ilə də bunu əldə etmişdik. Və o kod daha qısa idi. Tamamilə düzdür. Bu həqiqətəndə belədir. Və sətirə çevirəndə yalnız nöqtəToString() -dən istifadə olunur.
Lakin mən qeyd elədiyim kimi, Convert universal bir alətdir. Bəs sətiri ədədə çevirmək istəsək. Burada bizim köməyimizə Convert gəlir.
Gəlin yazaq.
string setir = "10";
int tamEded = Convert.ToInt32(setir);
Console.WriteLine(tamEded);
setir = "5,65";
double kesrEded = Convert.ToDouble(setir);
Console.WriteLine(kesrEded);
Console.ReadKey();
Nəticəyə baxaq:
Alındı. Amma ...
Diqqətli oxuyucular mütləq fikir verəcəklər ki, burada mən setir adlı dəyişənə "5.65" yox, "5,65" qiyməti verdim. Diqqət edin bu qaydaya: Bunun səbəbi nədir? Səbəb ondadır ki, adi halda C# dili ingilis formatı (rəqəm, tarix və s.) ilə işləyir. Və bu formatlar millətlər arası fərqlənir. Misal üçün mənim kompüterimdə XP-nin rus variantı instal olunub. Deməli kompüterim rəqəmlərin rus format variantı ilə işləyir. Ona görə də biz əvvəllərdə proqramda 5.65 yazırdıq, amma ekrana (rus Windows əməliyyat sisteminin konsol ekarnına) 5,65 çıxırdı.
Bəs nə etməli?
Birinci yol budur. Özümüz diqqət edək və sətiri ədədə çevirəndə dırnaq arası əməliyyat sisteminə uyğun nöqtə və ya vergül yazaq. Misal üçün axırıncı kodumuzda mən öz kompüterimdə
setir = "5.65";
yazsaydım, proqram səhv barədə mənə məlumat verərdi.
Lakin C# çox ağıllı bi dildir, və bizə lazım olan bütün imkanları yaradır. Sadəcə bir az öyrənməliyik.
Bizə kömək edən alət IFormatProvider interfeysi olacaq. İnterfeys barədə biz hələ söhbət açmayacayıq. Sadəcə bu millətlər arası format problemini həll edən alətdir. Burada biz onun aşağıda qeyd olunan bir metodunu əzbərləyəcəyik.
System.Globalization.CultureInfo.InvariantCulture
Gəlin bu kodu yazaq
string setir = "5.65";
double kesrEded = Convert.ToDouble(setir, System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine(kesrEded);
Console.ReadKey();
Yoxlayaq:

Alındı. Düzdür, ekranda yenə də vergül işarəsi qaldı, lakin biz artıq kodda 5.65 standart ingilis variantını verə bildik.
Bu dərsimizi burada tamamlayaq və növbəti dərsimizdə mövzunu davam etdirəcəyik.
7-ci dərsin sonu.
Комментариев нет:
Отправить комментарий