In C# ist es möglich, Strings auf verschiedene Weise zu verketten:Wann sollte ich String.Format oder String.Concat anstelle des Verkettungsoperators verwenden?
den Verkettungsoperator verwenden:
var newString = "The answer is '" + value + "'.";
String.Format
Verwendung:
var newString = String.Format("The answer is '{0}'.", value);
String.Concat
Verwendung:
var newString = String.Concat("The answer is '", value, "'.");
Was sind die Vor- und Nachteile jeder dieser Methoden? Wann sollte ich einen über den anderen bevorzugen?
Die Frage entsteht aufgrund einer Debatte zwischen Entwicklern. One nie verwendet String.Format
für die Verkettung - er argumentiert, dass dies für die Formatierung von Zeichenfolgen, nicht für die Verkettung, und das ist immer unlesbar, weil die Elemente in der Zeichenfolge in der falschen Reihenfolge ausgedrückt werden. Der andere häufig verwendet String.Format
für die Verkettung, weil er denkt, dass es den Code leichter zu lesen macht, besonders wenn es mehrere Sätze von Zitaten gibt. Beide Entwickler verwenden auch den Verkettungsoperator und String.Builder.
+1 um dem unverdienten Downvote entgegenzuwirken. – LukeH
Ja, guter Link +1. – StuartLC
Die Verwendung von String-Verkettung würde oft viele kleine Objekte im Speicher erzeugen, was sich negativ auf die Speicherbereinigungsleistung auswirken könnte. Es ist sehr schwierig, einen solchen Effekt durch einen Test von Ihrem Link aus zu messen, aber es könnte ein sehr großes Leistungsproblem für große Systeme mit harten Leistungsanforderungen sein. –