39.2 인덱서를 사용하여 배열 형식의 개체 만들기

    개체를 사용하면서 배열 형식의 필드에 좀 더 효율적으로 접근할 수 있는 개념인 인덱서로 클래스의 멤버에 접근하는 과정을 살펴보겠습니다.

    > public class Car
    . {
    .     private string[] names; //① 필드: 배열 형식 필드
    .
    .     //② 생성자: 생성자 매개변수로 필드의 요소 수 생성
    .     public Car(int length)
    .     {
    .         names = new string[length]; //넘어온 길이만큼 문자열 배열 생성
    .     }
    .
    .     //③ 속성: 읽기 전용 속성
    .     public int Length
    .     {
    .         get
    .         {
    .             return names.Length;
    .         }
    .     }
    .
    .     //④ 인덱서: this[] 키워드를 사용한 속성의 확장(배열) 형식
    .     public string this[int index]
    .     {
    .         get
    .         {
    .             return names[index];
    .         }
    .         set
    .         {
    .             names[index] = value;
    .         }
    .     }
    . }
    >
    > //자동차 클래스의 인스턴스를 생성할 때 생성자의 매개변수로 배열 크기 전달
    > Car car = new Car(3);
    > //Car 클래스에는 인덱서가 구현되어 있기에 개체를 배열형으로 접근 가능
    > car[0] = "CLA";
    > car[1] = "CLS";
    > car[2] = "AMG";
    > //자동차 목록 출력: for 문을 사용하여 개체 값을 출력 가능
    > for (int i = 0; i < car.Length; i++)
    . {
    .     Console.WriteLine("{0}", car[i]);
    . }
    CLA
    CLS
    AMG

    인덱서는 속성의 확장형입니다. 즉, 속성은 값 하나를 저장하는 반면, 인덱서는 속성에 배열형을 적용하여 여러 형태로 보이는 C#의 문법입니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.