This is because the []
operator on the string is a method that returns a value. Return value from a method when it is a primitive value type does not have an address.
[]
operator in C# is not the same as []
in C. In C, arrays and character strings are just pointers, and applying []
operator on a pointer, is equivalent to moving the pointer and dereferencing it. This does not hold in C#.
Actually there was an error in the MSDN documentation you linked, that is fixed in the latest version.
See here for more explanation on this exact matter.