Surowe literały ciągów znaków
Czytelnie zapisuj wielowierszowy tekst oraz tekst zawierający wiele cudzysłowów.
Surowe literały ciągów znaków to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 4 lekcji w sumie.
Surowe literały ciągów znaków
Surowy literał ciągu znaków jest ujęty w co najmniej trzy cudzysłowy. Wewnątrz niego znaki są traktowane dosłownie, bez przetwarzania sekwencji ucieczki.
using System;
class Program {
static void Main() {
string s = """Hello "World"!""";
Console.WriteLine(s);
}
}Brak sekwencji ucieczki
Ukośniki odwrotne są zwykłymi ukośnikami odwrotnymi wewnątrz surowego ciągu znaków, co doskonale sprawdza się w przypadku ścieżek plików i wzorców wyrażeń regularnych.
using System;
class Program {
static void Main() {
string path = """C:\Users\Ada\file.txt""";
Console.WriteLine(path);
}
}Umieszczanie cudzysłowów
Ponieważ ogranicznik składa się z co najmniej trzech cudzysłowów, pojedynczych i podwójnych cudzysłowów wewnątrz nie trzeba escapować.
using System;
class Program {
static void Main() {
string json = """{"name": "Ada", "age": 30}""";
Console.WriteLine(json);
}
}Wielowierszowe surowe ciągi znaków
W przypadku treści wielowierszowej należy umieścić otwierające i zamykające cudzysłowy w osobnych wierszach. Tekst między nimi zostanie zachowany.
using System;
class Program {
static void Main() {
string text = """
Line one
Line two
""";
Console.WriteLine(text);
}
}Usuwanie wcięcia
W wielowierszowych surowych ciągach znaków odstępy przed zamykającymi cudzysłowami wyznaczają bazowe wcięcie, które jest usuwane z każdego wiersza.
using System;
class Program {
static void Main() {
string s = """
indented in source
but flush in output
""";
Console.WriteLine(s);
}
}Więcej cudzysłowów w przypadku konfliktów
Jeśli treść zawiera trzy cudzysłowy, należy użyć czterech lub większej liczby cudzysłowów w ograniczniku, aby ciąg znaków był jednoznaczny.
using System;
class Program {
static void Main() {
string s = """"He said """quote""" today."""";
Console.WriteLine(s);
}
}Surowa interpolacja
Prefiks w postaci znaku dolara umożliwia korzystanie z interpolowanych surowych ciągów znaków. Liczba znaków dolara określa, ile nawiasów klamrowych rozpoczyna wyrażenie.
using System;
class Program {
static void Main() {
string name = "Ada";
string s = $"""Hello, {name}!""";
Console.WriteLine(s);
}
}Dwa dolary dla dosłownych nawiasów klamrowych
Przy dwóch znakach dolara pojedyncze nawiasy klamrowe są dosłowne, a podwójne rozpoczynają wyrażenie. Jest to przydatne w przypadku szablonów JSON.
using System;
class Program {
static void Main() {
string id = "42";
string s = $$"""{ "id": {{id}} }""";
Console.WriteLine(s);
}
}Czytelniejsze rozwiązanie niż forma verbatim
Surowe ciągi znaków zastępują wiele zastosowań starszej formy verbatim, zapewniając czytelniejszą obsługę cudzysłowów i wcięć.
using System;
class Program {
static void Main() {
string sql = """
SELECT *
FROM Users
WHERE Active = 1
""";
Console.WriteLine(sql);
}
}Świetne do tworzenia szablonów
Surowe ciągi znaków ułatwiają czytelne osadzanie kodu JSON, XML, HTML lub SQL, ponieważ nie trzeba escapować żadnych znajdujących się w nich znaków.
using System;
class Program {
static void Main() {
string html = """<a href="/home">Home</a>""";
Console.WriteLine(html);
}
}Kiedy ich używać
Warto używać surowych ciągów znaków, gdy tekst zawiera wiele cudzysłowów, ukośników odwrotnych lub zajmuje wiele wierszy.
using System;
class Program {
static void Main() {
string regex = """\d{3}-\d{4}""";
Console.WriteLine(regex);
}
}Szybki test
Proszę sprawdzić swoją wiedzę na temat surowych literałów ciągów znaków.
Podsumowanie
Surowe literały ciągów znaków używają co najmniej trzech cudzysłowów i traktują zawartość dosłownie, bez sekwencji ucieczki, dzięki czemu idealnie nadają się do ścieżek, wyrażeń regularnych, JSON-a i HTML-a. Wersje wielowierszowe zachowują układ i usuwają wcięcie zamykających cudzysłowów.
Gdy zawartość koliduje z ogranicznikiem, należy dodać więcej cudzysłowów. Prefiks w postaci znaków dolara umożliwia interpolację, a dodatkowe znaki dolara zmieniają sposób interpretowania nawiasów klamrowych.
Często zadawane pytania
Czy lekcja „Surowe literały ciągów znaków” jest bezpłatna?
Tak — pełny tekst „Surowe literały ciągów znaków” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Surowe literały ciągów znaków”?
Czytelnie zapisuj wielowierszowy tekst oraz tekst zawierający wiele cudzysłowów. Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć C# Academy?
Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Surowe literały ciągów znaków”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?
Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawy interpolacji ciągów znaków
- Formatowanie złożone za pomocą string.Format
- Specyfikatory formatu liczb i dat
- Surowe literały ciągów znaków