Start Debugging
2023-03-15 Aktualisiert 2023-11-05 csharp Edit on GitHub

Raw-String-Literale in C# 11 (Dreifach-Anführungszeichen-Syntax)

Verwenden Sie Raw-String-Literale in C# 11 (Dreifach-Anführungszeichen-Syntax `"""`), um Leerzeichen, Zeilenumbrüche und Anführungszeichen ohne Escape-Sequenzen einzubetten. Regeln und Beispiele.

Raw-String-Literale sind ein neues Format, mit dem Sie Leerzeichen, Zeilenumbrüche, eingebettete Anführungszeichen und andere Sonderzeichen in Ihrer Zeichenfolge unterbringen können, ohne Escape-Sequenzen verwenden zu müssen.

So funktioniert es:

Ein kurzes Beispiel:

string rawString = """
    Lorem ipsum "dolor" sit amet,
        consectetur adipiscing elit.
    """;

Die Ausgabe lautet:

Lorem ipsum "dolor" sit amet,
    consectetur adipiscing elit.

Leerzeichen vor der Schluss-Sequenz

Die Leerzeichen vor den schließenden doppelten Anführungszeichen steuern, welche Leerzeichen aus Ihrem Raw-String-Ausdruck entfernt werden. Im obigen Beispiel hatten wir 4 Leerzeichen vor der """-Sequenz, daher wurden vier Leerzeichen aus jeder Zeile des Ausdrucks entfernt. Hätten wir nur 2 Leerzeichen vor der Schluss-Sequenz, wären nur 2 Leerzeichen aus jeder Zeile des Raw-Strings entfernt worden.

Beispiel: keine Leerzeichen vor der Schluss-Sequenz

Im vorherigen Beispiel würde die resultierende Zeichenfolge die Einrückung exakt so beibehalten, wie sie war, falls wir keinerlei Leerzeichen vor der Schluss-Sequenz angegeben hätten.

Ausdruck:

string rawString = """
    Lorem ipsum "dolor" sit amet,
        consectetur adipiscing elit.
""";

Ausgabe:

    Lorem ipsum "dolor" sit amet,
        consectetur adipiscing elit.

Mehr als 3 doppelte Anführungszeichen in der Eröffnungs- / Schluss-Sequenz verwenden

Das ist nützlich, wenn der Raw-String selbst eine Sequenz aus 3 doppelten Anführungszeichen enthält. Im folgenden Beispiel verwenden wir eine Sequenz aus 5 doppelten Anführungszeichen zum Beginn und Ende des Raw-String-Literals, sodass wir im Inhalt Sequenzen aus 3 und 4 doppelten Anführungszeichen unterbringen können.

string rawString = """""
    3 double-quotes: """
    4 double-quotes: """"
    """"";

Ausgabe:

3 double-quotes: """
4 double-quotes: """"

Zugehörige Fehler

CS8997: Unterminated raw string literal.

string rawString = """Lorem ipsum "dolor" sit amet,
        consectetur adipiscing elit. 
    """;

CS9000: Raw string literal delimiter must be on its own line.

var rawString = """
    Lorem ipsum "dolor" sit amet,
        consectetur adipiscing elit.""";

CS8999: Line does not start with the same whitespace as the closing line of the raw string literal.

var rawString = """
    Lorem ipsum "dolor" sit amet,
consectetur adipiscing elit.
    """;

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Zurück