반응형
아래 글은 C# 인덱서(Indexer)와 반복기 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.
📃 참고자료
- C# 교과서(길벗 출판사) - 39단원 인덱서와 반복기 532 ~ 545페이지
- 유튜브 채널 VisualAcademy [C# 교과서 마스터하기 39. 인덱서와 반복기]
- 닷넷코리아 (https://www.dotnetkorea.com/)
https://www.youtube.com/watch?v=IuCfuPRe6Rk
✳ 인덱서와 반복기
- 인덱서(Indexer)
- 클래스의 인스턴스를 배열처럼 사용할 수 있도록 해주는 구문 - 반복기(Iterator)
- 컬렉션의 항목을 단계별로 실행하는 데 사용되는 구문
✳ 인덱서(Indexer)
- 개체를 배열 형식으로 표현하고자 할 때 사용
-> 속성의 배열형 - 배열의 인덱스 접근 방식인 개체명[0], 개체명[1] 식으로 개체의 속성(property)에 접근
- 자동차 개체를 예를 든다면 자동차 카탈로그(광고지)와 같이
자동차에 대한 인덱스(목차)를 표현하는 방법과 같은 의미
✳ 인덱서(Indexer)와 배열(Array) 비교
배열(Array) | 인덱서(Indexer) | |
첨자 (Subscript) |
각각의 멤버에 접근할 때 정수형 첨자만을 사용 | 숫자형이 아닌 첨자 사용 가능, 문자열 첨자로 각각의 멤버에 접근 가능 |
오버로팅 (Overloading) |
자식 클래스에서 오버로드 불가능 | 자식 클래스에서 오버로드 가능 |
메서드 파라미터 |
일반 매개변수 및 ref, out 매개변수 사용 가능 | 일반 매개변수만 사용가능하고 ref와 out 파라미터는 사용 불가 |
✳ 예제코드
//[?] 인덱서를 사용하여 여러 값을 주고 받기
using System;
namespace Indexer
{
class Developer
{
private string name;
// 인덱서
public string this[int index]
{
get { return name; } // [index]로 요청시 특정 필드의 값을 반환한다.
set { name = value; } // 넘어온 값은 value 키워드로 읽어올 수 있다.
}
}
class Indexer
{
static void Main()
{
var developers = new Developer();
developers[0] = "홍길동"; // 인덱스와 상관없이 name 필드에 문자열이 저장된다.
Console.WriteLine(developers[0]); // 홍길동
developers[1] = "백두산";
Console.WriteLine(developers[1]); // 백두산
}
}
}
반응형
'프로그래밍언어 & 프레임워크 > C#' 카테고리의 다른 글
C# 메서드(Method) 오버라이드 (0) | 2021.06.09 |
---|---|
C# 상속(Inherits)으로 클래스 확장하기 (0) | 2021.06.08 |
C# 메서드(Method)와 매개변수(Parameter) (0) | 2021.06.06 |
C# 소멸자(Destructor) (0) | 2021.06.05 |
C# 네임스페이스(Namespace) (0) | 2021.06.04 |