인덱서
인덱서란? ------------------------------------------------------------------------------------------------------------------------
인덱서란 내부에 존재하는 맴버변수나 혹은 인스턴스를 배열과 같이 취급하는 것을 인덱서라고 한다.
문법적으로는 C#의 속성의 배열 버전이라고 보면 된다 보인다.
class SampleCollection<T>
{
private T[] arr = new T[100]; -> 어라 클래스의 맴버변수를 내부에서 그냥 초기화 해버린다. 가능했구나...
private int c = 0; -> 이렇게 굳이 할당을 하지 않아도 가능하다.
public T this[int i] -> 이녀석이 인덱서이다. this구문을 무조건 붙여줘야 한다.
{
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"; -> 객체에서 즉각 접근이 가능해진다.
stringCollection[1] = "World, Hello"; -> 배열이니 인덱스를 바꾸는 것도 마찬가지.
System.Console.WriteLine(stringCollection[1]);
}
}