정수형 인덱서 만들기
우선 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 키워드를 사용하여 값을 설정하지 않았기에 읽기 전용 인덱서입니다.
②를 보면 알 수 있듯이 클래스에 인덱서를 만들어 놓으면 개체이름[인덱스] 형태로 값을 호출할 수 있습니다.