더북(TheBook)

정수형 인덱서 만들기

우선 get 키워드만 사용하는 정수형 인덱서를 만들어 보겠습니다. 다음 내용을 입력한 후 실행해 보세요.

정수형 인덱서 만들기: IndexerNote.cs

using System;

class Catalog
{
    //① 정수형 인덱서: this[int index] 형태로 정의됨
    public string this[int index]
    {
        get
        {
            return (index % 2 == 0) ? $"{index} : 짝수 반환" : $"{index} : 홀수 반환";
        }
    }
}

class IndexerNote
{
    static void Main()
    {
        Catalog catalog = new Catalog();
        Console.WriteLine(catalog[0]); //② 개체이름[인덱스] 형태로 호출 가능
        Console.WriteLine(catalog[1]);
        Console.WriteLine(catalog[2]);
    }
}

실행 결과

0 : 짝수 반환
1 : 홀수 반환
2 : 짝수 반환

인덱서는 속성과 달리 이름을 따로 지정하지 않고 this 키워드를 사용합니다. 그리고 매개변수로 배열 형식을 받습니다. ①에서 넘어온 매개변수 값이 짝수 또는 홀수일 때마다 매개변수 값과 함께 짝수 또는 홀수 값을 반환합니다. 따로 set 키워드를 사용하여 값을 설정하지 않았기에 읽기 전용 인덱서입니다.

②를 보면 알 수 있듯이 클래스에 인덱서를 만들어 놓으면 개체이름[인덱스] 형태로 값을 호출할 수 있습니다.