CodeGym /Kurslar /C# SELF /Data tipləri arasında konvertasiya

Data tipləri arasında konvertasiya

C# SELF
Səviyyə, Dərs
Mövcuddur

1. Tip konvertasiyası niyə lazımdır?

C# — ciddi tipli dildir. Əgər kompüterdə rəqəm üçün “qutu” varsa, ora mətn soxmağa çalışmaq — təxminən çəngəli USB portuna taxmağa cəhd etmək kimidir. Kompilyator bunu heç vaxt bağışlamaz! 😡

Amma həyatda biz tez-tez müxtəlif data tipləri ilə eyni anda işləyirik. Məsələn, səndə rəqəm saxlayan bir string var. Bax, burada konvertasiya (yaxud çevirmə) lazımdır.

Bir nümunəyə baxaq. Tutaq ki, istifadəçi sayını saxlamaq istəyirsən:

int a = 1;
int b = "2";
int c = "üç";

Kompilyator dərhal deyəcək: “Məni nə hesab edirsən? Mən string-i avtomatik rəqəmə çevirə bilmirəm, bunu özün etməlisən. String-i rəqəmə açıq şəkildə çevirməlisən".

C#-da konvertasiya üçün bir neçə yol var və hər birinin öz üstünlükləri, çatışmazlıqları və tipik “tələ”ləri var.

2. int-i string-ə çevirmək

İşimizdə tez-tez rəqəmin string formasını almaq lazım olur: məsələn, onu ekrana çıxarmaq, fayla yazmaq, şəbəkə ilə ötürmək, mətnlə birləşdirmək və s. C#-da bunun üçün bir neçə üsul var, hər biri fərqli situasiyalarda rahatdır.

ToString() funksiyası

Bu əsas və ən yayılmış üsuldur:

int number = 42;
string str = number.ToString();  // str == "42"

ToString() rəqəmi string-ə çevirir və bu struktur üçün default görünüşü verir.

String interpolasiyası ($"...")

Müasir və dəyişənlərlə string düzəltmək üçün rahat üsuldur:

int number = 42;
string str = $"Rəqəm: {number}";

String interpolasiyası daxil edilən dəyər üçün avtomatik ToString() çağırır.

Bir neçə dəyişəni birləşdirmək və hətta format göstərmək də olar:

int number = 42;
string str = $"{number:D5}"; // "00042" — beş rəqəm, əvvəlində sıfırlar

Boş string ilə konkatenasiya

Köhnə, amma işlək üsuldur:

int number = 42;
string str = number + "";

Bu yanaşma sadə hallarda tez işləyir, amma kod oxuyan proqramçı üçün o qədər də aydın deyil.

3. String-ə qeyri-aşkar çevirmə

Yuxarıda dediyimiz kimi, C# developer-ləri elə ediblər ki, C#-da bütün dəyişənləri, obyektləri, ifadələri string-ə çevirmək olar.

Hətta bu avtomatik baş verir, əgər string tipini başqa bir tiplə toplasaq. Nümunələr:

int a = 5;
string name = "Anya" + a;            //  name dəyişəni "Anya5" string-i saxlayır

int a = 5;
string city = a + "New York" + a;   //  city dəyişəni "5New York5" string-i saxlayır

int number = 10;
string code = "Yo";
string message = "Salam! " + number + code; //  message dəyişəni "Salam! 10Yo" string-i saxlayır

Hər üç nümunədə biz rahatlıqla int və string tiplərini topladıq və nəticədə həmişə string tipi alındı.

Vacibdir! string tipi ilə arifmetik əməliyyatlar etmək olmaz. Hətta string tamamilə rəqəmlərdən ibarət olsa belə.

Nümunələr:

int a = 5;
string name = "1" + a;              //  name dəyişəni "15" string-i saxlayır

int a = 5;
string city = a + "9" + a;          //  city dəyişəni "595" string-i saxlayır

int number = 10;
string code = "10";
string message = "" + number + code; // message dəyişəni "1010" string-i saxlayır 

Toplama əməliyyatı soldan sağa aparılır, ona görə nəticə bəzən gözlənilməz ola bilər. Nümunə:

int a = 5;
string name = a + a + "1" + a;      // name dəyişəni "1015" string-i saxlayır

İcra ardıcıllığı: ((a + a) + "1") + a

4. String-i rəqəmə çevirmək

C#-da rəqəmi string-ə çevirmək üçün sadəcə onu boş string ilə toplamaq kifayətdir:

string str = "" + rəqəm;

Bəs əgər string-i rəqəmə çevirmək lazımdırsa? Hər string-i rəqəmə çevirmək olmur. Amma əgər string yalnız rəqəmlərdən ibarətdirsə, mümkündür. Bunun üçün int tipində xüsusi Parse() funksiyası var.

Bu komanda belə görünür:


int x = int.Parse("string")
String-i rəqəmə çevirmək

Burada int x — x adlı tam tipli dəyişənin elanıdır, string isə rəqəmlərdən ibarət string-dir (rəqəm kimi yazılmış string).

Nümunələr:

string str = "123";
int number1 = int.Parse(str);        //  number1 dəyişəni 123 rəqəmini saxlayır;

int number2 = int.Parse("321");      //  number2 dəyişəni 321 rəqəmini saxlayır

int number3 = int.Parse("321" + 0);  //  number3 dəyişəni 3210 rəqəmini saxlayır

int number4 = "321"; //  Kompilyasiya olunmayacaq: dəyişən int tipindədir, amma dəyər string tipindədir

Mənfi dəyərlər üçün də bu işləyir: int.Parse() funksiyası çox ağıllıdır.

2
Tapşırıq
C# SELF, səviyyə, dərs
Bağlanıb
Ədədin sətrə çevrilməsi
Ədədin sətrə çevrilməsi
2
Tapşırıq
C# SELF, səviyyə, dərs
Bağlanıb
Sətirdən ədədə çevrilmə
Sətirdən ədədə çevrilmə
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION