string (Référence C#)

Mise à jour : novembre 2007

Le type string représente une chaîne de zéro ou plusieurs caractères Unicode. string est un alias de String dans le .NET Framework.

Bien que string soit un type référence, les opérateurs d'égalité (== et !=) sont définis pour comparer les valeurs d'objets string, pas de références. Le test d'égalité des chaînes est ainsi plus intuitif. Par exemple :

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

Cela affiche "True", puis "False" parce que le contenu des chaînes est équivalent, mais a et b ne font pas référence à la même instance de chaîne.

L'opérateur + concatène les chaînes :

string a = "good " + "morning";

Cela crée un objet de chaîne qui contient "good morning".

Les chaînes sont immuables – le contenu d'un objet chaîne ne peut pas être modifié une fois que l'objet a été créé, même si la syntaxe peut laisser croire que la modification est possible. Par exemple, lorsque vous écrivez le code ci-après, le compilateur crée réellement un objet chaîne pour contenir la nouvelle séquence de caractères, et la variable b continue à détenir "h."

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

L'opérateur [] permet d'accéder en lecture seule aux différents caractères d'une string :

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

Les littéraux de chaîne sont de type string et sont indiqués entre des guillemets, avec ou sans le symbole @. Les littéraux de chaîne entre guillemets, mais sans symbole @ sont entourés de guillemets doubles (") :

"good morning"  // a string literal

Les littéraux de chaîne peuvent contenir n'importe quel littéral de caractère. Les séquences d'échappement sont incluses :

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

Cette chaîne contient une barre oblique inverse, la lettre f et un retour à la ligne.

Remarque :

Le code d'échappement \udddd (où dddd est un nombre à 4 chiffres) représente le caractère Unicode U+dddd. Les codes d'effacement Unicode à huit chiffres sont également reconnus : \udddd\udddd.

Les littéraux de chaîne textuels commencent par le symbole @ et sont également entourés de guillemets anglais doubles ("). Par exemple :

@"good morning"  // a string literal

Les chaînes textuelles permettent de spécifier que les séquences d'échappement ne doivent pas être traitées, ce qui facilite l'écriture d'un nom de fichier qualifié complet, par exemple :

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

Pour ajouter des guillemets doubles au sein d'une chaîne entre guillemets avec le symbole @, doublez-les :

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

Le symbole @ peut également être employé avec des identificateurs référencés (/reference) qui sont des mots clés C#.

Pour plus d'informations sur les chaînes en C#, consultez Chaînes (Guide de programmation C#).

Exemple

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
 */

Spécification du langage C#

Pour plus d'informations, consultez les sections suivantes dans Spécifications du langage C#.

  • 2.4.2 Identificateurs

  • 2.4.4.5 Littéraux de chaîne

  • 4.2.3 Type chaîne

  • 7.9.7 Opérateurs d'égalité de chaînes

Voir aussi

Concepts

Guide de programmation C#

Guide de programmation C#

Référence

Mots clés C#

Types référence (Référence C#)

Types valeur (Référence C#)

Autres ressources

Référence C#

Tableau des formats des résultats numériques (Référence C#)