Les deux articles de dire que la chaîne n'est PAS un type primitif. Ce qui ne l'est pas.
Si vous compilez et exécutez l'exemple de code à partir du deuxième article, il serait d'impression:
la chaîne n'est pas un type primitif.
Je pense que la confusion à ce propos, c'est que la syntaxe de création d'une nouvelle chaîne est similaire à la création de types de valeur.
Lors de la définition d'un type de la valeur de tous ces sont égaux (sur un système 32 bits de toute façon)
System.Int32 a = new System.Int32(5);
System.Int32 a = 5;
int a = 5;
Tout comme lors de la création d'une référence de type chaîne de caractères:
System.String s = new System.String(new char[]{'h', 'e', 'l', 'l', 'o'});
System.String s = "hello";
string s = "hello";
Aussi, nous pouvons comparer des chaînes par valeur, même s'ils sont des types référence:
s == "hello";//true
Cela ne fait toujours pas de chaîne un type primitif.
La accepté de répondre à cette question devrait vous donner plus de détails sur ce point.