public override CharacterEnumerator /*!*/ GetCharacters() { if (_owner.HasByteCharacters) { return(new MutableString.BinaryCharacterEnumerator(_owner.Encoding, _data, _count)); } char[] allValid; var result = MutableString.EnumerateAsCharacters(_data, _count, _owner.Encoding, out allValid); if (allValid != null) { // we can witch the content type if all characters are valid: WrapContent(allValid, allValid.Length); } return(result); }