Udostępnij za pośrednictwem


Tekst literału ciągu nieprzetworzonego — """ w literałach ciągu

Zaczyna się literał nieprzetworzonego ciągu i kończy się co najmniej trzema znakami podwójnego cudzysłowu ("):

var singleLine = """This is a "raw string literal". It can contain characters like \, ' and ".""";

Nieprzetworzone literały ciągu mogą obejmować wiele wierszy:

var xml = """
        <element attr="content">
            <body>
            </body>
        </element>
        """;

Następujące reguły określają interpretację nieprzetworzonego literału ciągu wielowierszowego:

  • Cudzysłowy otwierające muszą być ostatnim tokenem bez komentarza w odpowiednim wierszu, a cudzysłów zamykający musi być pierwszym tokenem bez komentarza w odpowiednim wierszu.
  • Wszelkie białe znaki z lewej strony cudzysłowów zamykających są usuwane ze wszystkich wierszy literału nieprzetworzonego ciągu.
  • Odstępy po cudzysłowie otwierającym w tym samym wierszu są ignorowane.
  • Białe znaki są uwzględniane tylko po cudzysłowie otwierającym.
  • Jeśli biały znak poprzedza ogranicznik końcowy w tym samym wierszu, dokładna liczba i rodzaj znaków odstępu (np. spacje a tabulatory) musi istnieć na początku każdego wiersza zawartości. W szczególności spacja nie pasuje do karty poziomej i na odwrót.
  • Nowy wiersz przed cudzysłowem zamykającym nie jest uwzględniony w dosłownym ciągu znaków.

Może być konieczne utworzenie nieprzetworzonego literału ciągu zawierającego co najmniej trzy kolejne znaki podwójnego cudzysłowu. Nieprzetworzone literały ciągu mogą rozpoczynać się i kończyć sekwencją co najmniej trzech znaków podwójnego cudzysłowu. Gdy literał ciągu zawiera trzy kolejne podwójne cudzysłowy, zaczynasz i kończysz nieprzetworzone literał ciągu z czterema podwójnymi znakami cudzysłowu:

var moreQuotes = """" As you can see,"""Raw string literals""" can start and end with more than three double-quotes when needed."""";

Jeśli musisz uruchomić lub zakończyć nieprzetworzone literał ciągu z znakami cudzysłowu, użyj formatu wielowierszowego:

var MultiLineQuotes = """"
               """Raw string literals""" can start and end with more than three double-quotes when needed.
               """";

Nieprzetworzone literały ciągów można również łączyć z ciągami interpolowanym w celu osadzenia { znaków i } w ciągu wyjściowym. Do osadzania $ i { znaków w ciągu wyjściowym używa się wielu } znaków w postaci interpolowanej nieprzetworzonego literału ciągu, bez ich ucieczki.

Zawartość nieprzetworzonego literału ciągu nie może zawierać zestawu ciągłych " znaków, których długość jest równa lub większa niż długość ogranicznika nieprzetworzonego ciągu. Na przykład ciągi """" """ """" i """"""" """""" """"" """" """ """"""" są dobrze sformułowane. Jednak ciągi """ """ """ i """ """" """ są źle sformułowane

Nieprzetworzone literały ciągów zostały wprowadzone w języku C# 11.

Zobacz też