Start Debugging

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.

Diese Website nutzt Walter, einen KI-Agenten, für Recherche, Texte und Pflege. Redaktion und Überprüfung

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 Raw-String-Literal beginnt mit drei oder mehr doppelten Anführungszeichen ("""). Sie entscheiden, wie viele doppelte Anführungszeichen Sie zum Umschließen Ihres Literals verwenden.
  • es endet mit derselben Anzahl an doppelten Anführungszeichen, die Sie am Anfang verwendet haben
  • bei mehrzeiligen Raw-String-Literalen müssen die Eröffnungs- und Schluss-Sequenzen auf separaten Zeilen stehen. Die Zeilenumbrüche nach dem öffnenden und vor dem schließenden Anführungszeichen werden im endgültigen Inhalt nicht berücksichtigt.
  • sämtliche Leerzeichen links neben den schließenden doppelten Anführungszeichen werden aus dem String-Literal entfernt (aus allen Zeilen; darauf gehen wir weiter unten genauer ein)
  • Zeilen müssen mit derselben Anzahl an Leerzeichen (oder mehr) beginnen wie die Schluss-Sequenz
  • in mehrzeiligen Raw-Literalen werden Leerzeichen, die in derselben Zeile auf die Eröffnungs-Sequenz folgen, ignoriert

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.