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