Blog Content

    티스토리 뷰

    69.C# - 반복기

    반응형
    반복기는 for문/foreach문이 필요할때 호출해서 사용하는 방법입니다.

    Program.cs
    //Iterator : 내가 만든 객체를 foreach문으로
    //돌리고자할 때 반복기가 구현되어있어야 함...
    using System;

    class 반복기
    {
        static void Main(string[] args)
        {
            int[] data = { 1, 2, 3 };
            
            foreach (var item in data) //var 대신 int로 써도 됨
            {
                Console.WriteLine(item);
            }

            Car hyundai;//Class
            hyundai= new Car(3); //Constructor
            hyundai[0] = "에쿠스"; //Indexer
            hyundai[1] = "제네시스";
            hyundai[2] = "그랜저";

            //Length Property
            for (int i = 0; i < hyundai.Length; i++)
            {
                Console.WriteLine(hyundai[i]);
            }

            //Iterator
            foreach (var item in hyundai)
            {
                Console.WriteLine(item);
            }
        }
    }
    //19번 라인을 실행하기 위해서는 반드시 반복기가 구현되어있어야 한다.
    //구현은 Car.cs에서

    Car.cs
    using System;

    public partial class Car
    {
        public int Length { get; set; }
        private string[] names;

        public Car(int length)
        {
            this.Length = length;
            names = new string[length];
        }

        public string this[int index]
        {
            get { return names[index]; }
            set { names[index] = value; }
        }
        
        //Iterator : 반복기 : GetEnumerator()메서드
        public System.Collections.IEnumerator GetEnumerator()
        {
            for (int i = 0; i < names.Length; i++)
            {
                yield return names[i];           
            }
        }
    }
    //닷넷 기본으로 partial 붙어있음
     //21줄 : (foreach문 사용가능) 공식

    결과화면


    반응형

    'C#' 카테고리의 다른 글

    71.C# - 예외처리  (0) 2009.08.17
    70.C# - 변환연산자  (0) 2009.08.17
    68.C# - 암시적으로 형식화된 로컬변수 (var)  (0) 2009.08.17
    67.C# - 분할클래스  (0) 2009.08.17
    66.C# - 추가연산자  (0) 2009.08.17

    Comments