alguien entendio algo?
No deberias pretender optimizar la memoria con tareas que el compilador hace por defecto. De inicio debes saber que las cadenas son inmutables, por lo que al definir un string, el espacio de memoria reservado y al que hace referencia la variable es siempre el mismo.
Es decir, si tienes una variable:
string cadena = "ABC";
y haces cualquier operacion sobre la misma, p. ej. una simple concatenacion:
cadena += "123";
El resultado seria, evidentemente, ABC123, pero el bloque de memoria donde hacia referencia el puntero de la variable cadena, es distinto, ya que estas reconstruyendo un nuevo valor para dicha referencia.
http://en.wikipedia.org/wiki/Immutable_object