728x90
반응형
정의
C# Indexer는 특별한 문법인 this[] 를 써서 클래스 속성(Property) 처럼 get ,set 을 정의 한다
클래스 내부의 어떤 데이터를 리턴 하는지는 클래스 디자인시 필요에 따라 정하게 될것이고 리턴 데이터 타입도 여러가지로 지정할수 있다
입력 파라미터인 인덱스도 여러 데이터 타입을 쓸 수 있는데 주로 int나 string 타입을 사용하여 인덱스 값을 주는 것이 일반적이다
예제)
int 인덱스를 받아 배열의 데이터를 찾아 정수를 리턴
namespace ConsoleApp2
{
class MyClass
{
private const int MAX = 10;
private string name;
// 내부 정수 배열 데이터
private int[] data = new int[MAX];
// 인덱스 정의. int 파라미터 사용
public int this[int index]
{
get
{
if (index < 0 || index >= MAX)
{
throw new IndexOutOfRangeException();
}
else
{
// 정수 배열로 부터 값 리턴
return data[index];
}
}
set
{
if (!(index < 0 || index >= MAX))
{
// 정수 배열에 값 저장
data[index] = value;
}
}
}
}
class Program
{
static void Main(string[] args)
{
MyClass cls = new MyClass();
// 인덱서 set 사용
cls[1] = 1024;
// 인덱서 get 사용
int i = cls[1];
}
}
}
728x90
반응형
'개발일지 > C#' 카테고리의 다른 글
회계 관리 프로그램 예제 (1) | 2024.11.09 |
---|---|
인사 급여 관리 프로그램 예제 (0) | 2024.11.08 |
C# Delegate (2) | 2024.10.02 |
yield (5) | 2024.10.01 |
C#) ref (0) | 2024.10.01 |