아래 예제는 배열을 내부적으로 사용했을 때, 인덱서를 구현해 본 예이다. 배열은 고정된 크기를 가지기 때문에, 지정된 범위 이외의 값이 들어오면 Exception으로 처리하고 있다.
public class MyClass { private const int MAX = 100; private object[] table = new object[MAX]; public object this[int i] { get { if (i < 0 || i >= MAX) { throw new IndexOutOfRangeException(); } return this.table[i]; } set { if (i < 0 || i >= MAX) { throw new IndexOutOfRangeException(); } this.table[i] = value; } } }
[가산점] 인덱서의 파라미터로 배열인덱스를 나타내는 숫자가 아니라 문자열 키(string key)를 받아들인다면, 어떤 자료 구조가 적합합니까?
[A] Hash Table (Dictionary)