Wortgetreue Zeichenfolgen

Wortgetreue Zeichenfolgen

# Interpolierte wörtliche Zeichenfolgen

Verbatim-Strings können mit den neuen String-Interpolationsfunktionen von C#6 kombiniert werden.

Console.WriteLine($@"Testing \n 1 2 {5 - 2}
New line");

Ausgabe:

Testen \n 1 2 3
Neue Zeile

Live-Demo auf .NET Fiddle

Wie von einer wörtlichen Zeichenfolge erwartet, werden die umgekehrten Schrägstriche als Escape-Zeichen ignoriert. Und wie von einem interpolierten String erwartet, wird jeder Ausdruck in geschweiften Klammern ausgewertet, bevor er an dieser Position in den String eingefügt wird.

# Doppelte Anführungszeichen maskieren

Doppelte Anführungszeichen innerhalb wörtlicher Zeichenfolgen können mit 2 aufeinanderfolgenden doppelten Anführungszeichen maskiert werden "" um ein doppeltes Anführungszeichen " darzustellen in der resultierenden Zeichenfolge.

var str = @"""I don't think so,"" he said.";
Console.WriteLine(str);

Ausgabe:

"Ich glaube nicht", sagte er.

Live-Demo auf .NET Fiddle

# Verbatim-Strings weisen den Compiler an, keine Escape-Zeichen zu verwenden

In einer normalen Zeichenfolge ist der umgekehrte Schrägstrich das Escape-Zeichen, das den Compiler anweist, nach den nächsten Zeichen zu suchen, um das tatsächliche Zeichen in der Zeichenfolge zu bestimmen. (Vollständige Liste der Escape-Zeichen)

In wörtlichen Zeichenfolgen gibt es keine Escape-Zeichen (außer "" die in eine " umgewandelt wird ).Um eine wörtliche Zeichenfolge zu verwenden, stellen Sie einfach @ voran vor den Anführungszeichen.

Diese wörtliche Zeichenfolge

var filename = @"c:\temp\newfile.txt"

Ausgabe:

c:\temp\neuedatei.txt

Im Gegensatz zur Verwendung einer gewöhnlichen (nicht wörtlichen) Zeichenkette:

var filename = "c:\temp\newfile.txt"

das wird ausgeben:

c:    emp
ewfile.txt

Verwenden von Zeichen-Escapezeichen. (Die \t wird durch ein Tabulatorzeichen und den \n ersetzt wird durch einen Zeilenumbruch ersetzt.)

Live-Demo auf .NET Fiddle

# Mehrzeilige Zeichenfolgen

var multiLine = @"This is a 

multiline paragraph";

Ausgabe:

Dies ist ein mehrzeiliger Absatz

Live-Demo auf .NET Fiddle

Mehrzeilige Zeichenfolgen, die doppelte Anführungszeichen enthalten, können ebenfalls mit Escapezeichen versehen werden, als wären sie in einer einzelnen Zeile, da es sich um wörtliche Zeichenfolgen handelt.

var multilineWithDoubleQuotes = @"I went to a city named

                        ""San Diego""

                      during summer vacation.";

Live-Demo auf .NET Fiddle

Es sollte beachtet werden, dass die Leerzeichen/Tabulatoren am Anfang der Zeilen 2 und 3 hier tatsächlich im Wert der Variablen vorhanden sind; Überprüfen Sie diese Frage auf mögliche Lösungen.

#-Syntax

  • @"Verbatim-Strings sind Strings, deren Inhalt nicht maskiert ist, daher stellt \n in diesem Fall nicht das Zeilenumbruchzeichen dar, sondern zwei einzelne Zeichen:\ und n. Verbatim-Strings werden erstellt, indem dem Inhalt des Strings das @-Zeichen"
  • @"Um Anführungszeichen zu maskieren, werden ""doppelte Anführungszeichen"" verwendet."
  • # Bemerkungen

    Um Zeichenfolgenliterale zu verketten, verwenden Sie das @-Symbol am Anfang jeder Zeichenfolge.

    var combinedString = @"\t means a tab" + @" and \n means a newline";