인덱서(Indexer)

 

인덱서: 인덱서는 객체를 배열 처럼  접근할 수 있도록 한다.

특징:
오버로딩 가능 (indexer signature로 구분): 하나의 클래스에 여러개의 indexer를 만들수 있다.
프로퍼티와는 달리 static 선언은 불가능
인덱서는 값에 의한 전달만 가능
배열처럼 다차원 배열 형태의 인덱서도 가능
배열은 첨자 []안의 자료형이 정수 타입만  사용가능하지만, 인덱서는 float, String도 사용 가능

형식:

 

접근제한자   자료형  this[자료형 변수]
{
      get
      {
            return 리턴값;
       }

       set
       {
             변수  = value;
        }
}

 

1. 일차원 배열처럼 사용한 예제

아래 예제는 벡터 클래스로 x, y, z 멤버 변수를 배열처럼 접근 하는 예제이다.

 

 

2. 다차원 배열처럼 사용하는 예제

C#에서 2차원 배열을 어떻게 하는지 코드로 보자.

public class ItemCellInfo

{

    public GameObject obj;

    public int score;

}

 

ItemCellInfo[,] mBoard = new ItemCellInfo[mRowNum, mColumnNum];

 

아래 예제는 다차원 배열의 인덱서 예제이다.   사용 예만 보이기 위한 예제 이므로 유용성은 없다.

 

 


참조

http://msdn2.microsoft.com/ko-kr/library/