I am curious about the string and primitive types. Article like this says string is primitive type. However second article on MSDN does not list string as primitive type. >
No, the string is not a primitive type.
However, it has some characteristics common with the primitive types.
The language supports string literals in the code, so that you don't have to explicitly create String instances using the new keyword to get a string object.
There is also support for concatenating strings using the + operator, which the compiler turns into a call to the String.Concat method.
Strings are immutable, which means that it in most situations has value type semantics, just like the primitive types.