标签:
1.IEnumerator与IEnumerable接口
IEnumerator接口:实现此接口的为枚举器类型,此接口包含3个方法Current、MoveNext、Reset。
IEnumerable接口:实现此接口只需实现一个方法GetEnumerator得到一个枚举器。
class ColorEnumerator : IEnumerator //实现枚举器接口:Current,MoveNext,Reset共3种方法 { string[] _colors; int _position = -1; public ColorEnumerator(string[] theColors) { _colors =new string[theColors.Length]; for (int i = 0; i < theColors.Length; i++) { _colors[i]=theColors[i]; } } public object Current { get { if (_position==-1) { throw new InvalidOperationException(); } if (_position>=_colors.Length) { throw new InvalidOperationException(); } return _colors[_position]; } } public bool MoveNext() { if (_position < _colors.Length - 1) { _position++; return true; } else { return false; } } public void Reset() { _position = -1; } } class Spectrum : IEnumerable//实现可枚举类型接口,返回枚举器 { string[] Colors = { "violet","blue","cyan","green","yellow","orange","red"}; public IEnumerator GetEnumerator() { return new ColorEnumerator(Colors); } } class Program { static void Main() { Spectrum spectrum = new Spectrum(); foreach (string color in spectrum) { Console.WriteLine(color); } Console.Read(); } }
标签:
原文地址:http://www.cnblogs.com/yerunwu/p/4921266.html