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.