■ IEnumerator<T> 인터페이스를 사용하는 방법을 보여준다.
▶ IEnumerator
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
인터페이스 사용하기 예제 (C#)">using System; string[] stringArray = { "김철수", "홍길동", "김영수", "박철수" }; TestEnumerator testEnumerator = new TestEnumerator(stringArray); while(testEnumerator.MoveNext()) { string name = (string)testEnumerator.Current; Console.WriteLine(name); } |
▶ IEnumerator
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
인터페이스 사용하기 (C#)">using System.Collections.Generic; /// <summary> /// 테스트 열거자 /// </summary> public class TestEnumerator : IEnumerator<String> { //////////////////////////////////////////////////////////////////////////////////////////////////// Field ////////////////////////////////////////////////////////////////////////////////////////// Private #region Field /// <summary> /// 문자열 배열 /// </summary> private string[] stringArray; /// <summary> /// 위치 /// </summary> private int position = -1; #endregion //////////////////////////////////////////////////////////////////////////////////////////////////// Property ////////////////////////////////////////////////////////////////////////////////////////// Public // IEnumerator #region 현재 항목 - Current /// <summary> /// 현재 항목 /// </summary> object System.Collections.IEnumerator.Current { get { return this.stringArray[this.position]; } } #endregion // IEnumerator<T> #region 현재 항목 - Current /// <summary> /// 현재 항목 /// </summary> public string Current { get { return this.stringArray[this.position]; } } #endregion //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor ////////////////////////////////////////////////////////////////////////////////////////// Public #region 생성자 - TestEnumerator(stringArray) /// <summary> /// 생성자 /// </summary> /// <param name="stringArray">문자 배열</param> public TestEnumerator(string[] stringArray) { this.stringArray = new string[stringArray.Length]; for(int i = 0; i < stringArray.Length; i++) { this.stringArray[i] = stringArray[i]; } } #endregion //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Public // IEnumerator<T> #region 다음 항목으로 이동하기 - MoveNext() /// <summary> /// 다음 항목으로 이동하기 /// </summary> /// <returns>처리 결과</returns> public bool MoveNext() { if(this.position < this.stringArray.Length - 1) { this.position++; return true; } else { return false; } } #endregion // IEnumerator<T> #region 리셋하기 - Reset() /// <summary> /// 리셋하기 /// </summary> public void Reset() { this.position = -1; } #endregion // IDisposable #region 해제하기 - Dispose() /// <summary> /// 해제하기 /// </summary> public void Dispose() { } #endregion } |