c#

인덱서

fd27 2021. 4. 16. 10:08

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]);
        }
    }        
}