c#에서 인덱서는 클래스나 구조체의 인스턴스를 배열처럼 인덱싱할 수 있게 한다.

class MyIndexer
{
    private int[] arr;

    public MyIndexer(int length)
    {
        arr = new int[length];
    }

    public int this[int index]
    {
        get => arr[index];
        set
        {
            if (index >= arr.Length)
            {
                Array.Resize(ref arr, index+1);
            }
            arr[index] = value;  
        } 
    }

    public int Length => arr.Length;
}
    
class MainApp
{
    static void Main(string[] args)
    {
        MyIndexer indexer = new MyIndexer(0);
        for (int i = 0; i < 5; i++)
            indexer[i] = i;
        for (int i = 0; i < indexer.Length; i++)
        {
            Console.WriteLine(indexer[i]);
        }
    }        
}

'c#' 카테고리의 다른 글

IEnumerable과 IEnumerator  (0) 2021.04.16
c# Auto properties  (0) 2021.04.15
가변길이 매개변수 params  (0) 2021.04.14
c# out 키워드 두 개 이상의 결과를 내보낼 때 사용  (0) 2021.04.13
c# ref return  (0) 2021.04.13

+ Recent posts