Wie man StringBuilder mit Bedacht benutzt

Ich bin etwas verwirrt über die Verwendung StringBuilder Klasse, erste:

Einen string Objekt Verkettung-operation erzeugt immer ein neues Objekt aus den vorhandenen string und die neuen Daten. Ein StringBuilder - Objekt verwaltet einen Puffer, um Platz für die Verkettung von neuen Daten. Neue Daten werden angehängt an das Ende des Puffers, wenn Raum vorhanden ist; andernfalls wird eine neue, größere Puffer zugeordnet ist, Daten aus der ursprünglichen Puffer kopiert, der neue Puffer, dann werden die neuen Daten angehängt, um die neuen Puffer.

Aber wo ist der Sinn der Schaffung StringBuilder Instanz zu vermeiden, erstellen eine neue String? Es klingt wie der Handel "one for one".

static void Main(string[] args)
{
    String foo = "123";
    using (StringBuilder sb = new StringBuilder(foo)) //also sb isn't disposable, so there will be error
    {
        sb.Append("456");
        foo = sb.ToString();
    }

    Console.WriteLine(foo);
    Console.ReadKey();
}

Warum sollte ich nicht einfach

+=

Edit: Ok, ich weiß jetzt, wie man wiederverwenden, eine Instanz von StringBuilder (weiß noch nicht, ob das richtig ist mit code-standards), aber das ist es nicht Wert zu verwenden, mit nur einem string, ist es nicht?

Kommentar zu dem Problem
@royB Was bedeutet "string contention verwendet stringbuilder (str1 + str2) nativ"? String Verkettung tatsächlich nicht StringBuilder verwenden intern. Kommentarautor: Lasse Vågsæther Karlsen

InformationsquelleAutor der Frage Bartłomiej Sobieszek | 2014-02-08

Schreibe einen Kommentar