Sie haben recht, das ist eine neue C# 6 Funktion ist
Das $
Zeichen vor einem String ermöglicht String-Interpolation. der Compiler speziell die Zeichenfolge analysieren, und alle Ausdrücke in geschweiften Klammern werden in das String an Ort und Stelle ausgewertet und eingefügt werden.
Unter der Haube auf den gleichen konvertiert Ding als das:
var path = string.Format("'{0}'", pathRelative);
die für diesen Schnipsel an der IL Werfen wir einen Blick:
var test = "1";
var val1 = $"{test}";
var val2 = string.Format("{0}", test);
die zu kompiliert:
// var test = "1";
IL_0001: ldstr "1"
IL_0006: stloc.0
// var val1 = $"{test}";
IL_0007: ldstr "{0}"
IL_000c: ldloc.0
IL_000d: call string [mscorlib]System.String::Format(string, object)
IL_0012: stloc.1
// var val2 = string.Format("{0}", test);
IL_0013: ldstr "{0}"
IL_0018: ldloc.0
IL_0019: call string [mscorlib]System.String::Format(string, object)
IL_001e: stloc.2
So sind die beiden identisch in der kompilierten Anwendung.
Ein Hinweis auf der String-Interpolation Syntax C#: Leider sind die Gewässer jetzt auf String-Interpolation schlammig, da die ursprüngliche C# 6 Vorschau ein different syntax hatte, die schon früh viel Aufmerksamkeit bekam auf Blogs. Sie werden immer noch viele Verweise auf die Verwendung von Backslashes für die String-Interpolation sehen, aber dies ist nicht mehr syntaktisch gültig.
@JeroenVannevel Ja, es erklärt jetzt, was es ist, aber der Titel der Frage macht es schwer es zu finden und die akzeptierte Antwort ist alt. Also ich denke es lohnt sich immer noch darum zu bitten? – Yves
Das scheint mir kein Duplikat zu sein. Ohne bereits zu wissen, was der $ für Sie ist, werden Sie diese andere Frage nicht finden. –
@RichardDalton: Das bedeutet nicht, dass es nicht die gleiche Frage ist. Eine Umformulierung der Frage ist * kein * Grund, sie zu duplizieren. Es geht auch nicht um die akzeptierte Antwort, es geht um die zweite Antwort, die hinzugefügt wurde, um sie zu aktualisieren. Diese Frage sollte geschlossen bleiben. Wenn Sie nicht zustimmen, gibt es immer http://meta.stackoverflow.com/, um es weiter zu diskutieren. –