다음을 통해 공유


인덱서(C# 프로그래밍 가이드)

업데이트: 2007년 11월

인덱서를 사용하면 클래스 또는 구조체의 인스턴스를 배열과 마찬가지로 인덱싱할 수 있습니다. 인덱서는 접근자에 매개 변수가 있다는 것을 제외하면 속성과 비슷합니다.

다음 예제에서는 값을 할당하고 검색하기 위한 방법으로 간단한 getset 접근자 메서드를 사용하여 제네릭 클래스를 정의하고 제공합니다. Program 클래스는 문자열을 저장하기 위해 이 클래스의 인스턴스를 만듭니다.

class SampleCollection<T>
{
    private T[] arr = new T[100];
    public T this[int i]
    {
        get
        {
            return arr[i];
        }
        set
        {
            arr[i] = value;
        }
    }
}

// This class shows how client code uses the indexer
class Program
{
    static void Main(string[] args)
    {
        SampleCollection<string> stringCollection = new SampleCollection<string>();
        stringCollection[0] = "Hello, World";
        System.Console.WriteLine(stringCollection[0]);
    }
}

인덱서 개요

  • 인덱서를 사용하면 배열과 비슷한 방식으로 개체를 인덱싱할 수 있습니다.

  • get 접근자는 값을 반환합니다. set 접근자는 값을 할당합니다.

  • this 키워드는 인덱서를 정의하는 데 사용됩니다.

  • value 키워드는 set 인덱서로 할당되는 값을 정의하는 데 사용됩니다.

  • 인덱서를 반드시 정수 값으로 인덱싱할 필요는 없습니다. 특정 조회 메커니즘을 정의하는 방법은 사용자가 선택할 수 있습니다.

  • 인덱서는 오버로드할 수 없습니다.

  • 2차원 배열에 액세스하는 경우와 같이 인덱서에는 여러 개의 정식 매개 변수가 있을 수 있습니다.

관련 단원

C# 언어 사양

자세한 내용은 C# 언어 사양의 다음 단원을 참조하십시오.

  • 1.6.7.3 인덱서

  • 10.2.9.3 인덱서에 예약된 멤버 이름

  • 10.9 인덱서

  • 13.2.4 인터페이스 인덱서

참고 항목

개념

C# 프로그래밍 가이드

참조

속성(C# 프로그래밍 가이드)