[C# 고급문법] #4 인덱서 (Indexer)
- Archive2/C#
- 2021. 7. 24.
반응형
# 인덱서 (Indexer)
* 개인적인 공부 기록용으로 작성한 포스팅 이기에 잘못된 내용이 있을 수 있으며, 추가하거나 수정할 내용이 있다면 지속적으로 수정해 나갈 예정입니다.
# 인덱서 (Indexer)
인덱서(Indexer)는 인덱스(Index)를 이용해 객체 내부에 존재하는 데이터에 접근하도록 도와주며, 객체를 마치 배열처럼 사용할 수 있도록 해준다.
객체 내부의 데이터에 접근할 수 있는 통로 역할을 한다는 점에서 프로퍼티(Property)와 매우 유사한데, 프로퍼티와 다른 점은 "인덱스(Index)"를 이용한다는 것이다. 인덱스의 선언 형식은 다음과 같다.
class 클래스이름
{
한정자 인덱서형식 this[형식 index]
{
get { /* index를 이용해 내부 데이터 반환 */ }
set { /* index를 이용해 내부 데이터 저장 */ }
}
}
아래는 인덱서를 활용한 예시인데, MyList 클래스 내부에 int형 array를 선언하여 인덱서를 이용해 array에 접근하는 코드이다.
class MyList
{
private int[] array = new int[5];
// Indexer
public int this[int index]
{
get
{
return array[index];
}
set
{
if (index >= array.Length)
{
Array.Resize<int>(ref array, index + 1);
Console.WriteLine($"Resize : {array.Length}");
}
}
}
}
class My
{
static void Main(string[] args)
{
MyList list = new MyList();
for (int i = 0; i < 5; i++)
list[i] = i;
for (int i = 0; i < list.Length; i++)
Console.WriteLine(list[i]);
}
}
이처럼 인덱서를 이용하면 마치 배열을 다루듯 인덱스를 이용해 데이터에 접근할 수 있다.
반응형
'Archive2 > C#' 카테고리의 다른 글
[C# 고급문법] #3 익명 메소드 (Anonymous Method) delegate (0) | 2021.07.22 |
---|---|
[C#기초] 상수(Const) & 열거형식(enum) (0) | 2021.06.24 |
[C# 기초] 프로그램의 구성 - 솔루션/ 프로젝트/ 소스 코드 (feat. Hello World!) (0) | 2021.06.16 |
[C# 고급문법] #2 Delegate(델리게이트) & 콜백함수(CallBack) (0) | 2021.06.09 |
[C# WPF] #0 WPF란 무엇인가? (WPF VS Winform) (0) | 2021.06.06 |