Es ist irgendwie möglich, eine Zeichenkette mit dem GDI auf ein Bild mit einem StringBuilder anstelle einer Zeichenkette zu zeichnen? Es gibt keine Graphics.DrawString() - Überladung, die einen StringBuilder akzeptiert. Aber eine reguläre Saite kann in manchen Fällen die GC-Zeit dramatisch erhöhen (in meinem Fall 52% laut CLR Profiler).C# GDI + DrawString() mit StringBuilder?
Hinweis: Ich möchte nicht das XNA Framework, das StringBuilders ab 4.0 unterstützt.
StringBuilder ist nützlich, um eine Zeichenfolge zu "bauen". Sobald Sie es erstellt haben, haben Stringbuilder und String die gleiche Leistung. Daher kann ich nicht sehen, wie die Übergabe eines Zeichenfolgers die Leistung von DrawString (die den ganzen String benötigt) erhöht ... Also lautet meine Antwort: Erzeuge deinen String mit 'StringBuilder' und gebe 'myStringBuilder.ToString()' an 'DrawString()' – digEmAll
Stimmen Sie mit @digEmall überein, Sie scheinen das falsche Ende des Sticks zu haben, in Bezug auf Stringbuilder und String. –
+1 für @digEmAll, StringBuilder lassen Sie die Zeichenkette generieren, so dass Sie .ToString() aufrufen können, wenn Sie den Wert benötigen. –