본문 바로가기
프로그래밍 이야기/GameDev

C#코딩 연습 - Indexer

by Mulder5 2020. 11. 21.
반응형

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