The documentation and language varies between VS 2008 and 2010:
Internally, the text is stored as a read
String.Length does not account for surrogate pairs, it only counts UTF-16 chars (i.e. chars are always 2 bytes) - surrogate pairs are counted as 2 chars.