Diese Funktionalität ist nicht in C # 5 oder niedriger integriert. Update: C # 6 unterstützt jetzt die String-Interpolation, siehe neuere Antworten.
Der empfohlene Weg, dies zu tun, wäre String.Format:
string name ="Scott";string output =String.Format("Hello {0}", name);
Ich habe jedoch eine kleine Open-Source-Bibliothek namens SmartFormat geschrieben , die String.Formatso erweitert wird , dass benannte Platzhalter (über Reflektion) verwendet werden können. Sie könnten also Folgendes tun:
string name ="Scott";string output =Smart.Format("Hello {name}",new{name});// Results in "Hello Scott".
Welche Art von Leistungseinbußen gibt es für die Verwendung Ihrer Reflection-Implementierung im Vergleich zur Standardzeichenfolge. Format?
Styfle
Ich sehe, dass Sie bereits eine Performance-Seite im Wiki haben. Es sieht ziemlich vielversprechend aus. Gute Arbeit!
Styfle
Ja, ich glaube, die Leistungsseite beantwortet wahrscheinlich Ihre Frage, aber ich habe keine Vergleiche zwischen "Hallo {0}" und "Hallo {Name}" durchgeführt. Offensichtlich wird die Reflexion länger dauern. Die Verwendung der Caching-Funktion verbessert jedoch die Parsing-Leistung und kann den Unterschied minimieren. In jedem Fall sind die Dinge SCHNELL!
Scott Rippey
1
Das stimmt nicht mehr. C # 6 fügte dies als Feature hinzu
Cole Johnson
5
Bis C # 5 (-VS2013) müssen Sie eine Funktion / Methode dafür aufrufen. Entweder eine "normale" Funktion wie String.Formatoder eine Überlastung des Operators +.
string str ="Hello "+ name;// This calls an overload of operator +.
In C # 6 (VS2015) wurde eine String-Interpolation eingeführt (wie in anderen Antworten beschrieben).
Bis C # 5 (-VS2013) müssen Sie eine Funktion / Methode dafür aufrufen. Entweder eine "normale" Funktion wie
String.Format
oder eine Überlastung des Operators +.In C # 6 (VS2015) wurde eine String-Interpolation eingeführt (wie in anderen Antworten beschrieben).
quelle
Verwenden Sie die folgenden Methoden
1: Methode eins
2: Methode zwei
3: Methode drei
4: Methode vier
5: Methode fünf
quelle