In C # 6 gibt es eine neue Funktion: interpolierte Zeichenfolgen.
Mit diesen können Sie Ausdrücke direkt in Code einfügen, anstatt sich auf Indizes zu verlassen:
string s = string.Format("Adding \"{0}\" and {1} to foobar.", x, this.Y());
Wird:
string s = $"Adding \"{x}\" and {this.Y()} to foobar.";
Wir haben jedoch viele Zeichenfolgen über mehrere Zeilen hinweg, wobei wörtliche Zeichenfolgen (hauptsächlich SQL-Anweisungen) wie folgt verwendet werden:
string s = string.Format(@"Result...
Adding ""{0}"" and {1} to foobar:
{2}", x, this.Y(), x.GetLog());
Das Zurücksetzen auf normale Zeichenfolgen scheint chaotisch:
string s = "Result...\r\n" +
$"Adding \"{x}\" and {this.Y()} to foobar:\r\n" +
x.GetLog().ToString();
Wie verwende ich sowohl wörtliche als auch interpolierte Zeichenfolgen zusammen?
Antworten:
Sie können beide
$
und@
Präfixe auf dieselbe Zeichenfolge anwenden :Da wird in C # 6 eingeführt , interpoliert wörtlich Strings mit den Token starten musste
$@
, aber beginnend mit C # 8, können Sie entweder$@
oder@$
.quelle
@$"..."
) funktioniert nicht, was mich hierher bringt.$@"..."
in dieser Reihenfolge sein.$@
funktioniert, wenn@$
es nicht funktioniert, macht vollkommen Sinn, wenn Sie darüber nachdenken. Wenn ich darüber verwirrt bin, was häufig vorkam, als ich anfing, diese Syntax zu verwenden, sagte ich mir immer: "Interpoliere diese wörtliche Zeichenfolge", weil das Gegenteil keinen Sinn ergeben würde.const string
, lassen Sie das fallenconst
.