상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - C#에서 인덱서(Indexer)의 사용법은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
C 에서 인덱서(Indexer)는 객체를 배열처럼 사용할 수 있게 해주는 특별한 속성입니다. 인덱서를 사용하면 클래스나 구조체의 인스턴스를 배열처럼 인덱스하여 접근할 수 있습니다. 이는 컬렉션이나 데이터 구조를 보다 직관적으로 다룰 수 있게 해줍니다. 인덱서는 주로 데이터의 집합을 표현하는 클래스에서 유용하게 사용됩니다. 인덱서의 기본 구조 인덱서는 `this` <a href='https://sangseek.com/sangseeks/키워드/ko'>키워드</a>를 사용하여 정의됩니다. 인덱서의 기본 구조는 다음과 같습니다: ```csharp public class MyCollection { private int[] array = new int[10]; public int this[int <a href='https://sangseek.com/sangseeks/index/ko'>index</a>] { get { return array[index]; } set { array[index] = value; } } } ``` 위의 예제에서 `MyCollection` 클래스는 정수 배열을 내부적으로 가지고 있으며, 인덱서를 통해 배열의 요소에 접근할 수 있습니다. `get` 접근자는 인덱스에 해당하는 값을 반환하고, `set` 접근자는 인덱스에 해당하는 위치에 값을 설정합니다. 인덱서 사용 예제 인덱서를 정의한 후에는 다음과 같이 사용할 수 있습니다: ```csharp class Program { static void Main(string[] args) { MyCollection collection = new MyCollection(); collection[0] = 10; // set collection[1] = 20; // set Console.WriteLine(collection[0]); // get: 10 Console.WriteLine(collection[1]); // get: 20 } } ``` 위의 코드에서 `collection[0]`와 `collection[1]`을 통해 인덱서에 접근하여 값을 설정하고 가져오는 것을 볼 수 있습니다. 여러 인덱서 정의하기 C 에서는 여러 개의 인덱서를 정의할 수 있으며, 이 경우 인덱서의 매개변수 타입이 다르거나 개수가 달라야 합니다. 예를 들어: ```csharp public class MultiIndexer { private string[] names = new string[10]; private int[] ages = new int[10]; public string this[int index] { get { return names[index]; } set { names[index] = value; } } public int this[string name] { get { int index = Array.IndexOf(names, name); return index >= 0 ? ages[index] : -1; // 이름이 없으면 -1 반환 } set { int index = Array.IndexOf(names, name); if (index >= 0) { ages[index] = value; } } } } ``` 위의 예제에서 `MultiIndexer` 클래스는 두 개의 인덱서를 가지고 있습니다. 하나는 정수 인덱스를 사용하고, 다른 하나는 문자열 인덱스를 사용하여 이름에 따라 나이를 가져오거나 설정할 수 있습니다. 인덱서의 장점 1. 직관적인 접근 : 인덱서를 사용하면 객체의 데이터를 배열처럼 쉽게 접근할 수 있어 코드가 더 직관적이고 가독성이 높아집니다. 2. 캡슐화 : 인덱서를 통해 내부 데이터 구조를 숨기고, 외부에서는 간단한 인터페이스를 통해 데이터에 접근할 수 있습니다. 3. 유연성 : 다양한 타입의 인덱서를 정의할 수 있어, 다양한 형태의 데이터 접근을 지원합니다. 인덱서의 제한 사항 - 인덱서는 반드시 `get`과 `set` 접근자를 모두 가질 필요는 없으며, 읽기 전용 인덱서(오직 `get`만 있는 경우)나 쓰기 전용 인덱서(오직 `set`만 있는 경우)도 가능합니다. - 인덱서의 이름은 항상 `this`로 고정되어 있으며, 다른 이름을 사용할 수 없습니다. 결론 C 의 인덱서는 객체 지향 프로그래밍에서 데이터 접근을 보다 직관적이고 간편하게 만들어주는 유용한 기능입니다. 컬렉션, 배열, 데이터베이스와 같은 다양한 데이터 구조를 다룰 때 인덱서를 활용하면 코드의 가독성과 유지보수성을 높일 수 있습니다. 인덱서를 적절히 활용하여 더 나은 프로그램을 작성해보세요.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기