클래스의 내부의 데이터를 배열처럼 사용가능
class 클래스명
{
제한자 출력자료형 this[자료형 인덱스]
{
get
{
return this.;
}
set
{
this[index] = value;
}
}
}
예제
Student 클래스 내부의 studentNum을 인덱서로 참조
class Student
{
private int[] studentNum;
public Student()
{
studentNum = new int[5];
}
public int this[int index]
{
get
{
if(index >= 0 && index < studentNum.Length) //범위내에 있으면 값 리턴
return this.studentNum[index];
}
set
{
if (index >= 0 && index < studentNum.Length) //범위내에 있으면 값 대입
this.studentNum[index] = value;
else
Console.WriteLine("Out of range"); //범위를 벗어나면 오류 출력
}
}
public override string ToString() //값 출력을 위해 ToString 오버라이딩
{
return string.Join(',',studentNum);
}
}
class Program
{
static void Main(string[] args)
{
Student student = new Student();
student[0] = 1; //인덱서를 사용해서 클래스 내부의 studentNum 에 값 대입
student[1] = 2;
student[2] = 3;
Console.WriteLine(student.ToString());
}
}
출력 : 1,2,3,0,0