Sommaire

Introduction

1. Définitions

Comme dans bon nombre de langages de programmation, le type String désigne en C# un type encapsulant un tableau de caractères, c’est-à-dire un tableau de char.

À noter que le Framework .Net fournit l’alias string (avec une minuscule) au type String. Dans ce chapitre, la notation en majuscule sera utilisée.

Enfin, il est essentiel de préciser que le type String est un type référence même si ses opérateurs de comparaison s’appliquent sur ses valeurs char incluses. Nous détaillerons cela plus loin dans ce chapitre.

Pour rappel, le prototype de la classe String est le suivant :

public sealed class String : IComparable, ICloneable, IConvertible,  
        IEnumerable, IComparable<string>, IEnumerable<char>, 
IEquatable<string>

2. De l’immutabilité du type string

Cet aspect d’immutabilité est fondamental même s’il est du ressort d’une mécanique interne. Schématiquement, il réfère au fait que toute opération sur un String va créer un nouveau String. Ceci peut s’exprimer de façon plus générale : chaque manipulation sur un String implique la création d’un nouveau String.

Dans le code suivant, il est important d’avoir à l’esprit qu’en mémoire la manipulation (une concaténation) de s1 provoque en mémoire la création d’un ...