As the following code is possible in C#, I am intersted whether string is actually an array of chars:
string a=\"TEST\";
char C=a[0]; // will be T
No, String is a class in .Net. It may be backed by an array. but it is not an array. Classes can have indexers, and that is what String is doing.
See comments for elaboration on this statement: From what I understand, all strings are stored in a common blob. Because of this, "foo" and "foo" point to the same point in that blob... one of the reasons strings are immutable in C#.