vendredi 7 avril 2006

GetType(String).IsValueType ???

False !

Les Types de valeurs sont des types de données représentées par un nombre d’octets (par opposition à un espace mémoire aloué dynamiquement) contrairement aux objets qui sont représentés sur la pile par une référence.
Cependant il est très facile de se tromper car la classe String est très bien écrite pour masquer cette différence.
Les fonctions d’instances de la classe string n’ont aucune incidence sur l’instance sur laquelle elles sont exécutés, elles renvoient toutes une autre instance de String que celle de l’objet sur lequel on exécute la fonction.
D’ailleurs :

String A = “A”;
A.Replace(”A”, “C”);
MessageBox.Show(A); //Affiche A !

CQFD

Edit : en fait on appel ça un type Immuable.