인덱서(C# 프로그래밍 가이드)
업데이트: 2007년 11월
인덱서를 사용하면 클래스 또는 구조체의 인스턴스를 배열과 마찬가지로 인덱싱할 수 있습니다. 인덱서는 접근자에 매개 변수가 있다는 것을 제외하면 속성과 비슷합니다.
다음 예제에서는 값을 할당하고 검색하기 위한 방법으로 간단한 get 및 set 접근자 메서드를 사용하여 제네릭 클래스를 정의하고 제공합니다. 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 인터페이스 인덱서