인덱서란? ------------------------------------------------------------------------------------------------------------------------


  인덱서란 내부에 존재하는 맴버변수나 혹은 인스턴스를 배열과 같이 취급하는 것을 인덱서라고 한다.

  문법적으로는 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]);

        }

    }

Posted by JJOREG