Latest web development tutorials

C # indexador (indexador)

Indexador (indexador) permite que um objeto como uma matriz pode ser indexado.Quando você define um indexador para a classe, os atos de classe será como umamatriz virtual (Virtual Array) o mesmo.Você pode usar o operador de acesso à matriz ([]) para acessar a instância da classe.

gramática

A indexação dimensional a seguinte sintaxe:

elemento do tipo este [index int] 
{
   // Obter acessor get 
   {
      // Retorna o valor de índice especificado}

   // Definir acessor definido 
   {
      // Definir o valor do índice especificado}
}

Indexador (indexador) usos

Declaração actua de uma maneira semelhante à propriedade indexador (propriedade). Como a propriedade (propriedade), que você pode usar para definir oconjunto de índices e obteracessador. No entanto, a propriedade é devolvido ou definir um membro de dados específico, e o índice de devoluções ou define a instância do objeto para um valor específico. Em outras palavras, é o de dados exemplo é dividido em partes menores, e cada parte do índice, obter ou definir cada seção.

A definição de um atributo (propriedade) compreende o fornecimento de nomes de propriedades. Quando o índice não está definido com o nome, mas comesta chave, que aponta para a ocorrência de objeto.O exemplo a seguir ilustra esse conceito:

using System;
IndexerApplication namespace
{
   IndexedNames classe
   {
      private string [] namelist = new string [tamanho];
      tamanho int public static = 10;
      IndexedNames públicos ()
      {
         for (int i = 0; i <size; i ++)
         namelist [i] = "NA";
      }
      Cadeia pública esta [index int]
      {
         obter
         {
            cadeia tmp;

            if (index> = 0 && índice <= size-1)
            {
               tmp = namelist [índice];
            }
            mais
            {
               TMP = "";
            }

            retorno (tmp);
         }
         conjunto
         {
            if (index> = 0 && índice <= size-1)
            {
               namelist [índice] = valor;
            }
         }
      }

      static void Main (string [] args)
      {
         nomes IndexedNames = new IndexedNames ();
         nomes [0] = "Zara";
         nomes [1] = "Riz";
         nomes [2] = "Nuha";
         nomes [3] = "Asif";
         nomes [4] = "Davinder";
         nomes [5] = "Sunil";
         nomes [6] = "Rubic";
         for (int i = 0; i <IndexedNames.size; i ++)
         {
            Console.WriteLine (nomes [i]);
         }
         Console.ReadKey ();
      }
   }
}

Quando o código acima é compilado e executado, ele produz os seguintes resultados:

Zara
Riz
Nuha
Asif
Davinder
Sunil
Rubic
naNaNa

indexador sobrecarregado (indexador)

Indexador (indexador) pode ser sobrecarregado. Quando declaração indexador pode também ser fornecida com uma pluralidade de parâmetros, e cada parâmetro pode ser de diferentes tipos. Não há necessidade de o índice deve ser um número inteiro. C # permite que indexadores podem ser outros tipos, tais como tipo de cadeia.

O exemplo a seguir demonstra indexador sobrecarregado:

using System;
IndexerApplication namespace
{
   IndexedNames classe
   {
      private string [] namelist = new string [tamanho];
      tamanho int public static = 10;
      IndexedNames públicos ()
      {
         for (int i = 0; i <size; i ++)
         {
          namelist [i] = "NA";
         }
      }
      Cadeia pública esta [index int]
      {
         obter
         {
            cadeia tmp;

            if (index> = 0 && índice <= size-1)
            {
               tmp = namelist [índice];
            }
            mais
            {
               TMP = "";
            }

            retorno (tmp);
         }
         conjunto
         {
            if (index> = 0 && índice <= size-1)
            {
               namelist [índice] = valor;
            }
         }
      }
      int público este [nome string]
      {
         obter
         {
            int index = 0;
            while (índice <size)
            {
               if (namelist [índice] == nome)
               {
                índice de retorno;
               }
               Índice ++;
            }
            índice de retorno;
         }

      }

      static void Main (string [] args)
      {
         nomes IndexedNames = new IndexedNames ();
         nomes [0] = "Zara";
         nomes [1] = "Riz";
         nomes [2] = "Nuha";
         nomes [3] = "Asif";
         nomes [4] = "Davinder";
         nomes [5] = "Sunil";
         nomes [6] = "Rubic";
         // Use o primeiro parâmetro com indexador int for (int i = 0; i <IndexedNames.size; i ++)
         {
            Console.WriteLine (nomes [i]);
         }
         // Use o segundo indexador com um Console.WriteLine parâmetro string (nomes [ "Nuha"]);
         Console.ReadKey ();
      }
   }
}

Quando o código acima é compilado e executado, ele produz os seguintes resultados:

Zara
Riz
Nuha
Asif
Davinder
Sunil
Rubic
naNaNa
2