인덱서(프로그래밍)

Indexer (programming)

개체 지향 프로그래밍에서 인덱서를 사용하면 특정 클래스 또는 구조의 인스턴스를 [1]배열과 동일하게 인덱싱할 수 있습니다.연산자 오버로드의 한 형태입니다.

실행

인덱서는 get 및 set 접근기를 통해 구현됩니다.operator[]이러한 속성은 속성과 비슷하지만 정적이지 않고 인덱서의 접근자가 매개 변수를 사용한다는 점이 다릅니다.get 및 set 접근자는 인덱서 선언의 매개 변수 목록을 사용하여 메서드로 호출되지만 set 접근자에는 여전히 암묵적인 액세스 권한이 있습니다.value파라미터를 지정합니다.

다음은 클래스에서 인덱서를 사용하는 C#의 예입니다.

학급 델 패밀리 {  일반의 델 패밀리(파라미터 스트링[] p멤버)  {      패밀리 멤버 = 신규 목록.< >스트링> ( ) ;      패밀리 멤버.추가 범위(p멤버);  }    사적인 목록.< >스트링> 패밀리 멤버;    일반의 스트링 이것.[인트 색인]  {   // get accessor(액세서 취득)   얻다   {       돌아가다 패밀리 멤버[색인];   }    // 설정 접근자:   세트   {       패밀리 멤버[색인] = 가치;   }  }   일반의 인트 이것.[스트링 ]  {   // 값별 인덱스 가져오기(첫 번째 요소 발견)   얻다   {       돌아가다 패밀리 멤버.FindIndex(m => m == );   }  }   일반의 인트 길이 => 패밀리 멤버.세어보세요;   } 

사용 예:

무효 주된() {     변화하다 도 패밀리 = 신규 델 패밀리("존', 제인);     위해서 (인트 i = 0; i < > 도 패밀리.길이; i++)     {         변화하다 멤버 = 도 패밀리[i];         변화하다 색인 = 도 패밀리[멤버]; // 이 경우 i와 동일하지만 doeFamily를 값으로 검색할 수 있는 인덱서 오버로드를 보여줍니다.         콘솔.기입선($"{member}는 {name of(doeFamily)의 멤버 번호 {index}입니다.}");     } } 

이 예에서는 인덱서를 사용하여 n번째 위치의 값을 가져온 다음 해당 값에 의해 참조되는 리스트의 위치를 가져옵니다.코드의 출력은 다음과 같습니다.

John은 doFamily의 멤버 번호 0이고 Jane은 doFamily의 멤버 번호 1입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ jagadish980 (2008-01-29). "C# - What is an indexer in C#". http://forums.sureshkumar.net/forum.php: Bulletin: SURESHKUMAR.NET FORUMS. Archived from the original on September 22, 2009. Retrieved 2011-08-01. {{cite web}}:외부 링크 location=(도움말)
  2. ^ "C# Interview Questions". http://www.dotnetfunda.com/: .net Funda. Retrieved 2011-08-01. {{cite web}}:외부 링크 location=(도움말)