배열 형식의 필드를 사용하는 인덱서
요일 정보를 담아 놓을 수 있는 형태의 개체를 만들어 보겠습니다.
> public class Week //요일 이름을 저장해 놓는 클래스 . { . //① 필드: 요일 문자열을 담아 놓을 수 있는 문자열 배열 . private string[] _week; . public Week() //②-1 생성자: 매개변수가 없는 생성자 . { . Length = 7; //기본값 초기화 . _week = new string[Length]; //요소 7개를 갖는 배열 생성 . } . . public Week(int length) //②-2 생성자: 매개변수가 있는 생성자 . { . Length = length; . _week = new string[Length]; . } . . public int Length { get; } //③ 속성 . . //④ 인덱서: 개체를 배열 형태로 사용하도록 this[] 형태의 인덱서 생성 . public string this[int index] . { . get { return _week[index]; } . set { _week[index] = value; } . } . } > > Week week = new Week(3); //ⓐ 배열 형식 생성 > week[0] = "일요일"; //ⓑ 인덱서로 문자열 값을 초기화 > week[1] = "월요일"; > week[2] = "화요일"; > for (int i = 0; i < week.Length; i++) //ⓒ 출력: 인덱서로 배열 형식의 필드 값 출력 . { . Console.WriteLine($"{week[i]}"); . } 일요일 월요일 화요일
④처럼 public string this[int index] 형태로 정수 형식의 매개변수를 받고 그에 해당하는 문자열 값을 반환해 주는 인덱서를 생성할 수 있습니다. 이렇게 생성된 인덱서는 ⓑ에서 값을 대입하면 인덱서의 setter를 실행하고, ⓒ에서 출력할 때 사용하면 인덱서의 getter를 실행합니다.