더북(TheBook)

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#의 문법입니다.

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