[C#] 인덱서의 활용

Yoo Hyung Joo ·2023년 10월 30일
0

인덱서란 무엇인가?
클래스 객체는 배열이 아님에도 불구하고, 마치 배열처럼 []를 배열 인덱스에 접근하는 것 처럼 사용하여 클래스 내의 특정 필드에 접근하는 것이다.

ex)

TestArray tArray = new TestArray();
tArray[9] = 0;
Console.WriteLine(tArray[9]);

이러한 방식으로 클래스를 배열 인덱스에 접근하는 것처럼 [] 이 키워드를 사용하여 접근할 수 있다.

TestArray의 예시 코드

public class TestArray
{
	private int[] _testArray = new int[10]{1,2,3,4,5,6,7,8,9,0};
    public int[] this[int index]
    {
    	get
        {
        	return _testArray[index];
        }
        set
        {
        	_testArray[index] = value;
        }
    }
}

이러한 방식으로 클래스를 마치 배열처럼 접근하여 편의성을 올려줄 수 있다.
배열을 private로 접근 지정을 못하게 하고 마치 프로퍼티처럼 만들어 접근할 수 있기 때문에 코드를 캡슐화 하기에도 매우 유용한 방법이다.

인덱서를 사용하는 이유
인덱서는 코드를 작성하는데 필수적으로 사용되는 것은 아니다. 하지만, 코드의 편의성, 가독성등을 올리기 위해 사용된다. 단순히 배열이 많을 경우에도 자주 사용하는 배열만 인덱서로 만들어두어도 접근성이 굉장히 올라가 편하게 사용할 수 있다.

느낀점
캡슐화를 시킬 떄도 사실 인덱서보다는 프로퍼티를 많이 선호하였는데 이번 기회에 인덱서를 사용하는 기회를 늘려보는 것도 좋을 것 같다.

profile
성장을 멈추지 않는 개발자

0개의 댓글