// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: CharEnumerator ** ** ** Purpose: Enumerates the characters on a string. skips range ** checks. ** ** Date: January 3, 2001 ** ============================================================*/ namespace System { using System.Collections; //| public sealed class CharEnumerator : IEnumerator, ICloneable { private String str; private int index; private char currentElement; internal CharEnumerator(String str) { this.str = str; this.index = -1; } //| public Object Clone() { return MemberwiseClone(); } //| public bool MoveNext() { if (index < (str.Length-1)) { index++; currentElement = str[index]; return true; } else index = str.Length; return false; } //| /// Object IEnumerator.Current { get { if (index == -1) throw new InvalidOperationException("InvalidOperation_EnumNotStarted"); if (index >= str.Length) throw new InvalidOperationException("InvalidOperation_EnumEnded"); return currentElement; } } //| public char Current { get { if (index == -1) throw new InvalidOperationException("InvalidOperation_EnumNotStarted"); if (index >= str.Length) throw new InvalidOperationException("InvalidOperation_EnumEnded"); return currentElement; } } //| public void Reset() { currentElement = (char)0; index = -1; } } }