Ambos artículos dicen que la cadena es NOT un tipo primitivo. Lo cual no es
Si compilar y ejecutar el código de ejemplo del segundo artículo se imprimiría:
cadena no es un tipo primitivo.
Creo que la confusión sobre esto es que la sintaxis de la creación de una nueva cadena es similar a la creación de tipos de valores.
Al definir un tipo de valor todos estos son iguales (en un sistema de 32 bits de todos modos)
System.Int32 a = new System.Int32(5);
System.Int32 a = 5;
int a = 5;
Al igual que éstos, cuando la creación de una cadena de tipo de referencia:
System.String s = new System.String(new char[]{'h', 'e', 'l', 'l', 'o'});
System.String s = "hello";
string s = "hello";
También podemos comparar cadenas por valor a pesar de que son tipos de referencia:
s == "hello";//true
Esto todavía no lo hace suena un tipo primitivo.
La respuesta aceptada a este question debería darle detalles sobre eso.
Siempre puedes probar el ejemplo del código del segundo artículo y descubrirlo por ti mismo. – Kyte
Probé el código, muestra String no es el tipo primitivo – Ram
@kyte: creo que el OP quería algunos comentarios sobre el hecho de que dos páginas oficiales de Microsoft en MSDN tienen opiniones diferentes sobre si la cadena es un tipo primitivo. Decirle que use solo una de las fuentes no es muy útil sin argumentos válidos –