string (Referencia de C#)

Actualización: noviembre 2007

El tipo string representa una secuencia de cero o más caracteres Unicode. string es un alias de String en .NET Framework.

Aunque string es un tipo de referencia, los operadores de igualdad (== y !=) se definen para comparar los valores de objetos string, no las referencias. De esta forma, es más intuitivo comprobar la igualdad entre cadenas. Por ejemplo:

string a = "hello";
string b = "h";
// Append to contents of 'b'
b += "ello";
Console.WriteLine(a == b);
Console.WriteLine((object)a == (object)b);

Esto presenta "True" y, después, "False" porque el contenido de las cadenas es equivalente, pero a y b no hacen referencia a la misma instancia de cadena.

El operador + concatena cadenas:

string a = "good " + "morning";

Esto crea un objeto de tipo string que contiene "good morning".

Las cadenas son inmutables: no se puede cambiar el contenido de un objeto de tipo string una vez creado el objeto, aunque pudiera parecer por la sintaxis utilizada que es posible realizar esta operación. Por ejemplo, al escribir este código, el compilador crea en realidad un nuevo objeto de tipo string para almacenar la nueva secuencia de caracteres, y la variable b sigue conteniendo "h".

string b = "h";
b += "ello";

El operador [] se puede utilizar para tener acceso de sólo lectura a caracteres individuales de un objeto string:

string str = "test";
char x = str[2];  // x = 's';

Los literales de cadena son objetos de tipo string que se pueden escribir de dos formas: entre comillas o entre comillas y precedidos de @. Los literales de cadena se deben encerrar entre comillas ("):

"good morning"  // a string literal

Los literales de cadena pueden contener cualquier literal de carácter. Se incluyen las secuencias de escape:

string a = "\\\u0066\n";

Esta cadena contiene una barra diagonal inversa, la letra f y el carácter de nueva línea.

Nota:

El código de escape \udddd (donde dddd es un número de cuatro dígitos) representa el carácter Unicode U+dddd. También se reconocen los códigos de escape Unicode de 8 dígitos: \udddd\udddd.

Los literales de cadena textuales empiezan con @ y se encierran entre comillas dobles. Por ejemplo:

@"good morning"  // a string literal

La ventaja de las cadenas textuales es que las secuencias de escape no se procesan, lo que facilita la escritura, por ejemplo, de un nombre de archivo completo:

@"c:\Docs\Source\a.txt"  // rather than "c:\\Docs\\Source\\a.txt"

Para incluir comillas tipográficas en una cadena precedida del símbolo @, escriba las comillas dos veces:

@"""Ahoy!"" cried the captain." // "Ahoy!" cried the captain.

Otro uso del símbolo @ consiste en utilizar identificadores de referencia (/reference) que sean palabras clave de C#.

Para obtener más información sobre las cadenas en C#, vea Cadenas (Guía de programación de C#).

Ejemplo

class SimpleStringTest 
{
   static void Main()
   {
      string a = "\u0068ello ";
      string b = "world";
      Console.WriteLine( a + b );
      Console.WriteLine( a + b == "Hello World" ); // == performs a case-sensitive comparison
   }
}
/* Output:
    hello world
    False
 */

Especificación del lenguaje C#

Para obtener más información, vea las secciones siguientes de Especificación del lenguaje C#.

  • 2.4.2 identificadores

  • 2.4.4.5 Literales de cadena

  • 4.2.3 El tipo string

  • 7.9.7 Operadores de igualdad de cadenas

Vea también

Conceptos

Guía de programación de C#

Guía de programación de C#

Referencia

Palabras clave de C#

Tipos de referencia (Referencia de C#)

Tipos de valores (Referencia de C#)

Otros recursos

Referencia de C#

Aplicar formato a la tabla de resultados numéricos (Referencia de C#)