CodeGym /Kurslar /C# SELF /Qaçış simvolları, xüsusi simvollar və sətir interpolasiya...

Qaçış simvolları, xüsusi simvollar və sətir interpolasiyası

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

1. Əsas xüsusi simvollar və qaçış simvolları

Proqramlaşdırmada sətirlər təkcə hərflərdən yox, həm də xüsusi simvollardan ibarətdir: sitat işarələri, sətir keçidləri, tabulyasiyalar, bəzən isə \n\t kimi işarələrdən. Amma əgər sən sətirdə Salam, "istifadəçi"! yazmaq istəsən, kompilyator dərhal soruşacaq: “Bəs sətirin içindəki sitat işarələri nədir, səhvdir?” Bax, burada qaçış simvolları mexanizmi lazımdır.

C#-da qaçış simvolları — bu, sətirin içində bəzi simvollara “xüsusi münasibət” göstərmək üsuludur. Bunun üçün backslash \ (yəni “backslash”) istifadə olunur.

Klassik xüsusi simvollar

Ardıcılıq Təsviri Göstəriş
\n Sətir keçidi Enter basıldı
\t Tabulyasiya Tab
\\ Sözün əsl mənasında "backslash" \
\" Sətirin içində sitat işarəsi "
\' Tək sitat işarəsi (sətirlərdə nadir hallarda lazımdır) '
\r Karetkanın qaytarılması (köhnə sətir keçidi stili, nadir hallarda istifadə olunur)
\0 Null-simvol (Görünməz)
\b Backspace (əvvəlki simvolu silir — konsolda həmişə işləmir)

Bu necə işləyir

Gəlin bir neçə sətir yazıb qaçış simvollarının necə işlədiyinə baxaq.


Console.WriteLine("Salam, \"İstifadəçi\"!");
// Çıxış: Salam, "İstifadəçi"!

Console.WriteLine("C:\\Program Files\\MyApp");
// Çıxış: C:\Program Files\MyApp

Console.WriteLine("Sətir 1\nSətir 2");
// Çıxış:
// Sətir 1
// Sətir 2

Console.WriteLine("Mən\ttabulyasiyanı\tsevirəm!");
// Çıxış:
// Mən      tabulyasiyanı   sevirəm!

Bax belə, bir sadə xətt (\) ilə sən sətirə istənilən xüsusi simvolu “soxa” bilərsən, nə kompilyatoru, nə də komanda yoldaşını qorxutmadan.

2. Adi və verbatim sətirlər (@-sətirlər)

Bəs əgər sənə tez-tez backslash yazmaq lazımdırsa — məsələn, fayl yollarında? Hər dəfə \\ yazmaq zəhlətökəndir. Xoşbəxtlikdən, C#-da verbatim string literal-lar var, onlar @ simvolu ilə başlayır.

Bu necə görünür?


string path = "C:\\Users\\Ann\\Documents\\";
string verbatimPath = @"C:\Users\Ann\Documents\";

Verbatim sətirlərdə qaçış simvolları lazım deyil — backslash adi simvoldur. Amma bir nüans var: belə sətirlərin içində sitat işarələri iki dəfə yazılmalıdır!


string quote = @"Bu verbatim sətirdir, içində sitat var: ""Hello""!";
Console.WriteLine(quote);
// Çıxış: Bu verbatim sətirdir, içində sitat var: "Hello"!

Vizual müqayisə

Stil Sintaksis Necə işləyir
Adi "C:\\Folder\\File.txt" Hər \ — iki dəfə
Verbatim (@) @"C:\Folder\File.txt" Bütün \ — adi simvoldur
Verbatim və sitat işarələri @"Text və ""sitat"" içində" Sitatlar — iki dəfə

Pro lifehack: Fayl yolları, çoxsətirli mətn və regex şablonları üçün verbatim sətirlərdən istifadə et.

3. Sətir keçidləri və çoxsətirli sətirlər

Çox vaxt sənə çoxsətirli mesaj və ya ASCII-art yazmaq lazım olur. Ən sadə yol — adi sətirdə \n istifadə etmək və ya verbatim literal-dan istifadə etməkdir. Verbatim literal bütün simvolları olduğu kimi saxlayır, o cümlədən sətir keçidlərini. Misal:


Console.WriteLine("Birinci sətir\nIkinci sətir");

Console.WriteLine(@"Çoxsətirli sətir.
Burada qaçış simvolları ilə sətir keçidi lazım deyil
Hətta tabulyasiyalar    olduğu kimi işləyir.");

C#-da həmçinin raw string literal-lar (üçlü sitat) da var, onlar da çoxsətirli mətn yazmağa imkan verir, amma sitatları iki dəfə yazmağa ehtiyac yoxdur. Misal:


string json = """
    {
        "name": "Alice",
        "age": 30,
        "skills": ["C#", "SQL", "Azure"]
    }
    """;

Console.WriteLine(json);

4. Unicode — C#-da istənilən simvol necə saxlanılır

İndiki dövrdə biz təkcə latın əlifbası ilə yox, həm də kiril, heroqlif, riyazi simvollar və hətta emoji-lərlə işləyirik. Bütün bunlar simvolların kodlaşdırılması sistemi — Unicode sayəsində mümkündür.

Unicode nədir?

Unicode — bu, beynəlxalq standartdır, hər simvola unikal nömrə (code point) verir, dil və platformadan asılı olmayaraq. Buna görə sən C#-da eyni anda kiril, ingilis, çin heroqlifləri və hətta nadir xüsusi simvolları rahat istifadə edə bilərsən.

Müxtəlif dillərdə sətir nümunəsi:


Console.WriteLine("Hello, dünya! 你好! مرحبا!");

Unicode-simvollar sətirlərdə

Sən istənilən simvolu birbaşa yaza bilərsən (əgər kodlaşdırman dəstəkləyirsə), ya da escape-sequence kimi \uXXXX istifadə edə bilərsən, burada XXXX — 4 rəqəmli onaltılıq koddur.


Console.WriteLine("Simvol: \u263A"); // Çıxışda ☺

65535-dən böyük kodlu simvollar üçün (məsələn, bir çox emoji), \UXXXXXXXX (8 rəqəm) istifadə olunur:


Console.WriteLine("Emoji: \U0001F60A"); // Çıxışda 😊

Bu sənə nə verir?

  • İstənilən mətni saxlaya və işləyə bilərsən.
  • Dilləri qarışdırmaqdan və qeyri-standart simvollardan istifadə etməkdən qorxma — C# və .NET Unicode-u “hazır” dəstəkləyir.
  • Xüsusilə beynəlxalq istifadəçilərlə və qeyri-standart əlifbalarla işləyəndə vacibdir.

5. Emoji və xüsusi simvollar sətirlərdə

Müasir sətirlər — təkcə hərflər deyil, həm də emoji! Məsələn, istifadəçiyə gülərüz mesaj göndərmək istəyirsən.

Sətirə emoji necə əlavə etmək olar?

Emoji-ni birbaşa sətirə əlavə et:
Sadəcə lazım olan emoji-ni (məsələn, 😊, 🚀, 🐱) kopyala və sətir literalına yapışdır:


Console.WriteLine("Salam! 😊");

Unicode kodlarından istifadə et:
Çox emoji üçün \U və 8 rəqəmli kod istifadə et.


Console.WriteLine("Bax pişik: \U0001F431"); // 🐱

Emoji kodlarını online Unicode cədvəllərindən tapmaq olar.

Emoji ilə işləməyin xüsusiyyətləri

Emoji-lər sətirdə 2 və ya daha çox simvol tutar (çünki onların Unicode kodu 16 bitdən böyükdür).

Bəzi əməliyyatlarda (məsələn, sətirin uzunluğunu hesablamaq) “sürpriz” ola bilər:


string s = "😊";
Console.WriteLine(s.Length); // 2 çıxara bilər, 1 yox!

Bu, həmin emoji-nin codepoint-i iki simvolla kodlandığına görədir.

Konsolda və ya veb səhifədə əksər emoji-lər düzgün göstərilir, əgər sistemin və şriftin onları dəstəkləyirsə.

Emoji ilə sətir çıxışı nümunəsi


Console.WriteLine("Uğur münasibətilə təbrik edirik! 🎉 Sən əlasan! 🚀");

6. Tələlər və tez-tez edilən səhvlər

Yeni başlayanlar tez-tez sitat və backslash qaçışını qarışdırır. Məsələn, qaçış simvolunu unutsaq, kompilyator sətirin sonunu tez görəcək.

Səhv:


Console.WriteLine("O dedi: "Salam!""); // Səhv! Kompilyator panikadadır.

Düzgün:


Console.WriteLine("O dedi: \"Salam!\"");

Və ya fayl yolunu çıxarmaq lazım olanda bəzən belə yazırlar:


Console.WriteLine("C:\Temp\file.txt"); // Səhv və ya gözlənilməz nəticə, məsələn: C:  emp ile.txt

Çünki \t\f — xüsusi simvollardır (tabulyasiya və format keçidi). İki əsas yolla düzəltmək olar:


Console.WriteLine("C:\\Temp\\file.txt");    // İkiqat backslash
Console.WriteLine(@"C:\Temp\file.txt");     // Verbatim sətir

Vacibdir: əgər verbatim sətirdən istifadə edirsənsə və içində sitat lazımdırsa, onları iki dəfə yazmalısan:


Console.WriteLine(@"Fayl ""config.txt"" tapılmadı."); // Fayl "config.txt" tapılmadı.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION