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 və \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 və \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ı.
GO TO FULL VERSION