0Pricing
C# Academy · Lekcja

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

  1. Podstawy interpolacji ciągów znaków
  2. Formatowanie złożone za pomocą string.Format
  3. Specyfikatory formatu liczb i dat
  4. Surowe literały ciągów znaków
← Powrót do C# Academy