
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Improving StringBuilder Performance
|
75
occurs by explicitly defining the size of the new memory using either of two tech-
niques. The first approach is to set this value when the
StringBuilder class construc-
tor is called. For example, the code:
StringBuilder sb = new StringBuilder(200);
specifies that a StringBuilder object can hold 200 characters before new memory
must be allocated.
The second approach is to change the value after the
StringBuilder object has been
created, using one of the following properties or methods of the
StringBuilder
object:
sb.Capacity = 200;
sb.EnsureCapacity(200);
Discussion
As noted in previous recipes in this chapter, the String class is immutable; once a
string is assigned to a variable of type
string, the string pointed to by that variable
cannot be changed in any way. So changing the contents of a string variable entails
the creation of a new
string containing the modified string. The reference variable of
type
string must then be changed to reference this newly created string object. The
old
string object will eventually be marked for collection by the garbage collector,
and, subsequently, its memory will be freed. Because of this busy behind-the-scenes
action, code that performs intensive string manipulations using the
String class suf-
fers greatly from having ...