반응형
Indexer는 클래스나 구조체의 인스턴스를 배열처럼 인덱싱하게 해준다. 아래의 예제에서 this[int index]가 그 핵심 코드이다. this 객체에 배열과 같은 접근을 허용하면서 내부의 data 배열에서 하나의 값을 return 하거나 입력 해준다.
class LH2Demo_Indexer
{
// 배열의 크기
private const int MAX = 10;
// 배열 생성
private int[] data = new int[MAX];
// Indexer
public int this[int index]
{
get
{
// 입력 index가 허용 법위인지 검사
if (index < 0 || index >= MAX)
{
throw new IndexOutOfRangeException();
}
else
{
// 배열에서 값 획득 -> 리턴
return data[index];
}
}
set
{
// 입력 index가 허용 범위인지 검사
if (!(index < 0 || index >= MAX))
{
// 배열에 값 입력
data[index] = value;
}
}
}
}
internal class Program
{
public static void Main(string[] args)
{
LH2Demo_Indexer idxer = new LH2Demo_Indexer();
// 인덱서의 set 사용
idxer[0] = 500;
// 인덱서의 get 사용
Console.WriteLine("indexer[0] = {0}", idxer[0]);
}
}
반응형
'프로그래밍 이야기 > GameDev' 카테고리의 다른 글
[C#] Lamda, Func, Action (0) | 2020.11.29 |
---|---|
[C#] Delegate, Event (0) | 2020.11.26 |
C#코딩연습 - 클래스 연습 (0) | 2020.11.18 |
C# 코딩 연습 - 확장 메서드 (0) | 2020.11.15 |
C# 코딩 연습 - 배열기반 달리기 게임 (0) | 2020.11.11 |