Coole Funktion. Ich möchte nur darauf hinweisen, warum dies besser ist als string.format, wenn es einigen Leuten nicht klar ist.
Ich habe jemanden gelesen, der order string.format zu "{0} {1} {2}" sagt, um den Parametern zu entsprechen. Sie müssen "{0} {1} {2}" nicht in string.format bestellen, sondern können auch "{2} {0} {1}" ausführen. Wenn Sie jedoch viele Parameter haben, z. B. 20, möchten Sie die Zeichenfolge wirklich auf "{0} {1} {2} ... {19}" setzen. Wenn es sich um ein gemischtes Durcheinander handelt, fällt es Ihnen schwer, Ihre Parameter in eine Reihe zu bringen.
Mit $ können Sie Parameter inline hinzufügen, ohne Ihre Parameter zu zählen. Dies erleichtert das Lesen und Verwalten des Codes erheblich.
Der Nachteil von $ ist, dass Sie den Parameter in der Zeichenfolge nicht einfach wiederholen können, sondern ihn eingeben müssen. Wenn Sie beispielsweise die Eingabe von System.Environment.NewLine satt haben, können Sie string.format ("... {0} ... {0} ... {0}", System.Environment.NewLine) ausführen. aber in $ müssen Sie es wiederholen. Sie können $ "{0}" nicht ausführen und an string.format übergeben, da $ "{0}" "0" zurückgibt.
Nebenbei habe ich einen Kommentar in einem anderen duplizierten tpoic gelesen. Ich konnte es nicht kommentieren, also hier ist es. Er hat das gesagt
string msg = n + " sheep, " + m + " chickens";
Erstellt mehr als ein String-Objekt. Das ist eigentlich nicht wahr. Wenn Sie dies in einer einzelnen Zeile tun, wird nur eine Zeichenfolge erstellt und im Zeichenfolgencache abgelegt.
1) string + string + string + string;
2) string.format()
3) stringBuilder.ToString()
4) $""
Alle geben eine Zeichenfolge zurück und erstellen nur einen Wert im Cache.
Andererseits:
string+= string2;
string+= string2;
string+= string2;
string+= string2;
Erstellt 4 verschiedene Werte im Cache, da 4 ";" vorhanden sind.
Somit ist es einfacher, Code wie den folgenden zu schreiben, aber Sie würden fünf interpolierte Zeichenfolgen erstellen, wenn Carlos Muñoz korrigiert:
string msg = $"Hello this is {myName}, " +
$"My phone number {myPhone}, " +
$"My email {myEmail}, " +
$"My address {myAddress}, and " +
$"My preference {myPreference}.";
Dadurch wird eine einzelne Zeichenfolge im Cache erstellt, während Sie den Code sehr einfach lesen können. Ich bin mir über die Leistung nicht sicher, aber ich bin sicher, dass MS sie optimieren wird, wenn sie es nicht bereits tut.