Latest web development tutorials

C #을 인덱서 (인덱서)

인덱서 (인덱서) 배열과 같은 개체를 인덱싱 할 수 있습니다.당신이 클래스에 대한 인덱서를 정의 할 때, 클래스의 역할은가상 배열 (가상 배열) 같은처럼 될 것입니다.당신은 클래스의 인스턴스에 액세스하려면 배열 액세스 연산자 ([])를 사용할 수 있습니다.

문법

차원 색인 다음 구문 :

요소 형이 [INT 색인] 
{
   // GET을 접근 받기 
   {
      //} 지정된 인덱스의 값을 돌려줍니다

   // 설정 접근 설정 
   {
      } 지정된 인덱스의 값을 설정 //
}

인덱서 (인덱서) 사용

문은 인덱서 속성 (속성)과 유사한 방식으로 작동합니다. 특성 (속성)과 마찬가지로, 인덱스세트를 정의하고 접근 얻을하는데 사용할 수있다. 그러나,이 건물은 반환 또는 특정 데이터 멤버를 설정하고, 인덱스를 반환하거나 특정 값으로 개체 인스턴스를 설정한다. 즉, 각 구역을 설정 받거나 작은 부분들로 분할되는 경우 데이터 및 인덱스의 각 부분이다.

속성 (속성)의 정의는 속성 이름을 제공하는 단계를 포함하는 방법. 인덱스는 이름으로 정의하지만, 객체 인스턴스를 가리키와되지 않을 때.다음 예제에서는이 개념을 보여줍니다 :

시스템을 이용하여;
네임 스페이스 IndexerApplication
{
   클래스 IndexedNames
   {
      개인 문자열 [] 이름 목록 = 새 문자열 [크기];
      정적 공공의 INT 크기 = 10;
      공공 IndexedNames ()
      {
         대한 (; 내가 크기를 <나는 = 0 int로 내가 ++)
         이름 목록 [I] = "NA";
      }
      공공 문자열이 [INT 색인]
      {
         취득
         {
            문자열의 tmp;

            경우 (인덱스> = 0 && 인덱스 <= 크기-1)
            {
               TMP = 이름 목록 [인덱스]
            }
            그렇지 않으면
            {
               TMP = "";
            }

            리턴 (TMP);
         }
         세트
         {
            경우 (인덱스> = 0 && 인덱스 <= 크기-1)
            {
               이름 목록 [인덱스] 값을 =;
            }
         }
      }

      정적 무효 메인 (문자열 []에 인수)
      {
         IndexedNames 이름 = 새로운 IndexedNames ();
         이름 [0] = "자라";
         이름 [1] = "RIZ";
         이름 [2] = "Nuha";
         이름 [3] = "아시프";
         이름 [4] = "Davinder";
         이름 [5] = "선일";
         이름 [6] = "Rubic";
         대한 (INT 전 = 0; i가 IndexedNames.size을 <; 내가 ++)
         {
            Console.WriteLine (이름 [I]);
         }
         Console.ReadKey ();
      }
   }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

자라
RIZ
Nuha
아시프
Davinder
선일
Rubic
NANANA

오버로드 인덱서 (인덱서)

인덱서 (인덱서)는 오버로드 할 수있다. 인덱서 선언과 같은 복수의 파라미터를 구비 할 수 있고, 경우 각 파라미터는 다른 타입 일 수있다. 정수이어야 인덱스가 필요 없다. C #은 인덱서는 문자열 유형으로 다른 유형의 수 있습니다 할 수 있습니다.

다음의 예는 오버로드 인덱서를 보여줍니다

시스템을 이용하여;
네임 스페이스 IndexerApplication
{
   클래스 IndexedNames
   {
      개인 문자열 [] 이름 목록 = 새 문자열 [크기];
      정적 공공의 INT 크기 = 10;
      공공 IndexedNames ()
      {
         대한 (; 내가 크기를 <나는 = 0 int로 내가 ++)
         {
          이름 목록 [I] = "NA";
         }
      }
      공공 문자열이 [INT 색인]
      {
         취득
         {
            문자열의 tmp;

            경우 (인덱스> = 0 && 인덱스 <= 크기-1)
            {
               TMP = 이름 목록 [인덱스]
            }
            그렇지 않으면
            {
               TMP = "";
            }

            리턴 (TMP);
         }
         세트
         {
            경우 (인덱스> = 0 && 인덱스 <= 크기-1)
            {
               이름 목록 [인덱스] 값을 =;
            }
         }
      }
      공공 INT이 [캐릭터 이름]
      {
         취득
         {
            INT 인덱스 = 0;
            동안 (인덱스 <사이즈)
            {
               경우 (이름 목록의 [인덱스] == 이름)
               {
                인덱스를 반환;
               }
               인덱스 ++;
            }
            인덱스를 반환;
         }

      }

      정적 무효 메인 (문자열 []에 인수)
      {
         IndexedNames 이름 = 새로운 IndexedNames ();
         이름 [0] = "자라";
         이름 [1] = "RIZ";
         이름 [2] = "Nuha";
         이름 [3] = "아시프";
         이름 [4] = "Davinder";
         이름 [5] = "선일";
         이름 [6] = "Rubic";
         //에 대한 INT 인덱서와 함께 첫 번째 매개 변수를 사용하여 (INT 전 = 0; i가 IndexedNames.size을 <; 내가 ++)
         {
            Console.WriteLine (이름 [I]);
         }
         // 문자열 매개 변수 Console.WriteLine을 (이름 [ "Nuha"])와 두 번째 인덱서를 사용;
         Console.ReadKey ();
      }
   }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

자라
RIZ
Nuha
아시프
Davinder
선일
Rubic
NANANA
이