C\#색인 기 분석(Indexer)
문법
1 차원 색인 기의 문법 은 다음 과 같다.
element-type this[int index]
{
// get
get
{
// index
}
// set
set
{
// index
}
}
색인 기(Indexer)의 용도색인 기의 행동 에 대한 설명 은 어느 정도 속성(property)과 유사 합 니 다.속성(property)처럼 get 과 set 접근 기 를 사용 하여 색인 기 를 정의 할 수 있 습 니 다.단,속성 은 특정한 데이터 구성원 을 되 돌려 주거 나 설정 하고,색인 기 는 대상 실례 의 특정한 값 을 되 돌려 주거 나 설정 합 니 다.인 스 턴 스 데 이 터 를 더 작은 부분 으로 나 누고 각 부분 을 색인 하여 각 부분 을 가 져 오 거나 설정 한 것 이다.
속성 이름 을 제공 하 는 속성(property)을 정의 합 니 다.색인 기 가 정의 할 때 이름 은 없 지만 this 키 워드 를 가지 고 있 습 니 다.대상 인 스 턴 스 를 가리 키 고 있 습 니 다.아래 의 실례 는 이 개념 을 보 여 준다.
using System;
namespace IndexerApplication
{
class IndexedNames
{
private string[] namelist = new string[size];
static public int size = 10;
public IndexedNames()
{
for (int i = 0; i < size; i++)
namelist[i] = "N. A.";
}
public string this[int index]
{
get
{
string tmp;
if( index >= 0 && index <= size-1 )
{
tmp = namelist[index];
}
else
{
tmp = "";
}
return ( tmp );
}
set
{
if( index >= 0 && index <= size-1 )
{
namelist[index] = value;
}
}
}
static void Main(string[] args)
{
IndexedNames names = new IndexedNames();
names[0] = "Zara";
names[1] = "Riz";
names[2] = "Nuha";
names[3] = "Asif";
names[4] = "Davinder";
names[5] = "Sunil";
names[6] = "Rubic";
for ( int i = 0; i < IndexedNames.size; i++ )
{
Console.WriteLine(names[i]);
}
Console.ReadKey();
}
}
}
위의 코드 가 컴 파일 되 고 실 행 될 때 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.Zara
Riz
Nuha
Asif
Davinder
Sunil
Rubic
N. A.
N. A.
N. A.
색인 다시 불 러 오기(Indexer)
색인 기(Indexer)를 다시 불 러 올 수 있 습 니 다.색인 기 가 설명 할 때 도 여러 개의 인 자 를 가 질 수 있 고 매개 인 자 는 서로 다른 유형 일 수 있 습 니 다.색인 기 가 정형 이 어야 할 필 요 는 없다.C\#색인 기 를 다른 형식 으로 사용 할 수 있 습 니 다.예 를 들 어 문자열 형식 입 니 다.
다음 인 스 턴 스 는 인 덱 서 를 다시 불 러 오 는 것 을 보 여 줍 니 다.
using System;
namespace IndexerApplication
{
class IndexedNames
{
private string[] namelist = new string[size];
static public int size = 10;
public IndexedNames()
{
for (int i = 0; i < size; i++)
{
namelist[i] = "N. A.";
}
}
public string this[int index]
{
get
{
string tmp;
if( index >= 0 && index <= size-1 )
{
tmp = namelist[index];
}
else
{
tmp = "";
}
return ( tmp );
}
set
{
if( index >= 0 && index <= size-1 )
{
namelist[index] = value;
}
}
}
public int this[string name]
{
get
{
int index = 0;
while(index < size)
{
if (namelist[index] == name)
{
return index;
}
index++;
}
return index;
}
}
static void Main(string[] args)
{
IndexedNames names = new IndexedNames();
names[0] = "Zara";
names[1] = "Riz";
names[2] = "Nuha";
names[3] = "Asif";
names[4] = "Davinder";
names[5] = "Sunil";
names[6] = "Rubic";
// int
for (int i = 0; i < IndexedNames.size; i++)
{
Console.WriteLine(names[i]);
}
// string
Console.WriteLine(names["Nuha"]);
Console.ReadKey();
}
}
}
위의 코드 가 컴 파일 되 고 실 행 될 때 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.Zara
Riz
Nuha
Asif
Davinder
Sunil
Rubic
N. A.
N. A.
N. A.
2
이상 은 C\#색인 기(Indexer)의 상세 한 내용 을 분석 하 는 것 입 니 다.C\#색인 기(Indexer)에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.