2010-11-10 32 views

Respuesta

10

Probablemente System.String. Pero en un esfuerzo por proporcionar más información útil:

  • System.String instancias son inmutables. Concatenation/substring/etc en realidad crean nuevos objetos de cadena, por lo que usar una instancia de cadena como un buffer para generar salida es una muy mala idea, en caso de que lo hicieras. Piense en System.String como const CString.
  • System.Text.StringBuilder se utiliza para generar y manipular el contenido de cadena. Tiene un método .ToString() al que puede llamar para convertir su contenido en una cadena adecuada.
  • Puede usar char[] como una especie de alternativa al generador de cadenas, si sabe exactamente cuánto tiempo resultará una cadena generada, pero aun así puede usar new StringBuilder(length) para especificar una capacidad inicial predeterminada. A continuación, puede utilizar los métodos de adición relevantes sin tener que mantener una variable de índice. (StringBuilder lo hace por usted.)

Como Billy menciona en la otra respuesta a esta pregunta, C# tiene una palabra clave string que es esencialmente un acceso directo al tipo System.String. Ambos son completamente equivalentes, aunque la mayoría de los codificadores te LART si usas la forma en mayúscula.

+0

+1 - aunque creo que te refieres a StringBuilder en lugar de StringBuffer. –

+0

Sí, en realidad estaba corrigiendo eso mientras escribía. :) – cdhowie

+1

'" la mayoría de los codificadores le LART si utiliza la forma en mayúscula "' ¿qué es LART por cierto? – Inverse

2

Puede intentar usar String, y ver si esto ayuda.

+1

Tenga en cuenta que esto tiene soporte adicional en el lenguaje en forma de 'cadena' (minúscula). –

2

Ya sabes, CString no es exactamente un brillante ejemplo de diseño de O hecho bien. MS siguió agregando funciones de miembro hasta que se parecía a una navaja suiza ... mientras todavía faltaba funciones impotentes.

Todo lo que puede hacer con un CString se puede hacer mejor con el 'Sistema.String' inmutable y varias clases de soporte.