삽질의 현장/- .NET

#058_닷넷(.NET)_.Net Framework 기본 - 인덱서 메서드

shovelman 2015. 11. 5. 11:36


안녕하세요 삽잡이입니다.


이번 시간에는 C#의 고급 기능인..

즉, 몰라도 프로그래밍할 수 있는 기능 중 하나인 '인덱서 메서드'에 대해서 알아보려고합니다.


인덱서는 속성과 비슷합니다.

속성처럼 만드는데 그대신 this 연산을 붙여주면 됩니다.


기존 속성을 만들 때 이렇게 했었지요...



그런데, 인덱서는 '속성의 특수한 형태'입니다.

따라서 인덱서를 표현하기 위해서는 'this'를 사용하는 것입니다.


 

내 객체(this)로 [int idx]와 같이 호출하겠다는 것입니다.

즉, this[int idx]가 인덱서가 되는 것입니다.


반드시 int 형식이 와야되는 것은 아닙니다.

string, 혹은 다수의 인자등이 와도 접근이 가능해진다 이겁니다.



this[int x, int y], this[string str] 과 같이 형식만 다를 뿐 인덱스 접근은 다를 것이 없습니다.


하지만, 대부분 1, 2차 형식 혹은, 정수, 문자열이 대부분 인덱서의 인자로 오게됩니다.

그 이외에는 대부분 명확성이 떨어지기 때문에 사용하지 않지요.



그런데, 아무 곳에서나 대괄호 연산자를 제공하는 것이 아닙니다.

연속 메모리 기반의 데이터 관리하는 곳에서 사용하게 되지요.

즉, 많은 객체를 연속하게 담고 있는 곳에서 많이 사용한다는 것이지요...

필수는 아닙니다. 그저 지켜지는 관례이자 약속일 뿐입니다.


참고로, 여기서 value는 정해져있는 키워드입니다.



1, 2차 형식을 사용할 때에는 key를 많이 사용들을 합니다.

key를 사용하는 컬렉션에는 대표적으로 Dictionary 클래스가 있지요.



만약, key 형식이 제네릭이라고 하면 

Value를 return 하고, Value를 Set한다는 것입니다.

key에 해당하는 놈으로 검색을 하고 Set하겠다는 것이지요


인덱서란 이런 것입니다.



이번 시간은 여기까지 하도록 하겠습니다.


이상 삽잡이였습니다!