In C # ist es möglich, Strings auf verschiedene Arten zu verketten:
Verwenden des Verkettungsoperators:
%Vor% Verwenden von String.Format
:
Verwenden von String.Concat
:
Was sind die Vor- und Nachteile der einzelnen 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 zum Formatieren von Strings, nicht zur Verkettung, und das ist immer unlesbar, weil die Elemente in der Zeichenfolge in der falschen Reihenfolge ausgedrückt werden. Das andere häufig verwendet String.Format
für die Verkettung, weil er denkt, dass es den Code leichter lesbar macht, besonders wenn mehrere Sätze von Zitaten involviert sind. Beide Entwickler verwenden auch den Verkettungsoperator und String.Builder.
Was die Geschwindigkeit betrifft, ist es fast immer egal .
%Vor%Normalerweise benutze ich string.Format, wenn ich mehr als zwei oder drei Werte verkettet habe, da es einfacher zu sehen ist, wie das Endergebnis aussehen würde. Die Verkettung der Zeichenfolgen ist langsam, da Sie für jede Operation ein neues Zeichenfolgenobjekt erstellen müssen.
Wenn Sie mehr als 5 Zeichenfolgen verbinden möchten, verwenden Sie StringBuilder, da dies viel schneller wäre.
Es ist seltsam, aber String.Format verwendet intern StringBuilder.AppendFormat (). Beispielsweise sieht String.Format-Code folgendermaßen aus:
%Vor%Mehr dazu finden Sie hier . Also, warum haben wir hier nicht über StringBuilder.AppendFormat () erwähnt!
In Bezug auf den Hauptpunkt der Frage:
Der Schlüssel ist, das beste Werkzeug für den Job auszuwählen. Was meine ich? Betrachten Sie diese ehrfürchtigen Worte der Weisheit:
%Vor%Es wird nicht empfohlen, Zeichenketten im Code zu speichern. Wenn Sie also entscheiden, Ihre Zeichenketten aus dem Code zu extrahieren, dann wäre es mit String.Format einfacher,
zu machenDies ist ein Artikel zur Speichernutzung für verschiedene Verkettungsmethoden und Compileroptimierungen, die zum Erzeugen der IL verwendet werden. Methoden zur Verkettung und Optimierung
Tags und Links string c# concatenation