아래 글은 C# 인덱서(Indexer)와 반복기 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.

 

 

 

 

 

📃 참고자료

 

  • C# 교과서(길벗 출판사) - 39단원 인덱서와 반복기 532 ~ 545페이지
  • 유튜브 채널 VisualAcademy [C# 교과서 마스터하기 39. 인덱서와 반복기]
  • 닷넷코리아 (https://www.dotnetkorea.com/)

 

 

 

 

https://www.youtube.com/watch?v=IuCfuPRe6Rk 

 

 

 

 

 

✳ 인덱서와 반복기

 

  • 인덱서(Indexer)
    - 클래스의 인스턴스를 배열처럼 사용할 수 있도록 해주는 구문

  • 반복기(Iterator)
    - 컬렉션의 항목을 단계별로 실행하는 데 사용되는 구문

 

 

 

 

✳ 인덱서(Indexer)

 

 

  • 개체를 배열 형식으로 표현하고자 할 때 사용
    -> 속성의 배열형

  • 배열의 인덱스 접근 방식인 개체명[0], 개체명[1] 식으로 개체의 속성(property)에 접근

  • 자동차 개체를 예를 든다면 자동차 카탈로그(광고지)와 같이
    자동차에 대한 인덱스(목차)를 표현하는 방법과 같은 의미


 

✳ 인덱서(Indexer)와 배열(Array) 비교

 

 

  배열(Array) 인덱서(Indexer)
첨자
(Subscript)
각각의 멤버에 접근할 때 정수형 첨자만을 사용 숫자형이 아닌 첨자 사용 가능, 문자열 첨자로
각각의 멤버에 접근 가능
오버로팅
(Overloading)
자식 클래스에서 오버로드 불가능 자식 클래스에서 오버로드 가능
메서드
파라미터
일반 매개변수 및 ref, out 매개변수 사용 가능 일반 매개변수만 사용가능하고
ref와 out 파라미터는 사용 불가

 

 

 

 

 

 

✳ 예제코드

//[?] 인덱서를 사용하여 여러 값을 주고 받기
using System;

namespace Indexer
{
    class Developer
    {
        private string name;
        // 인덱서 
        public string this[int index]
        {
            get { return name; }    // [index]로 요청시 특정 필드의 값을 반환한다.
            set { name = value; }   // 넘어온 값은 value 키워드로 읽어올 수 있다.
        }
    }

    class Indexer
    {
        static void Main()
        {
            var developers = new Developer();
            developers[0] = "홍길동"; // 인덱스와 상관없이 name 필드에 문자열이 저장된다. 
            Console.WriteLine(developers[0]); // 홍길동
            developers[1] = "백두산";
            Console.WriteLine(developers[1]); // 백두산
        }
    }
}
반응형

+ Recent posts