Indexadores (Guia de Programação em C#)

Indexadores permitem instâncias de uma classe ou estrutura a ser indexados assim como matrizes. Indexadores são semelhantes a propriedades exceto que seus acessadores tiverem parâmetros.

No exemplo a seguir, uma classe genérica é definida e fornecida com obter simples e os métodos acessadores de dataset como um meio de atribuição e recuperar valores. A classe de Program cria uma instância desta classe para armazenar cadeias de caracteres.

class SampleCollection<T>
{
    // Declare an array to store the data elements. 
    private T[] arr = new T[100];

    // Define the indexer, which will allow client code 
    // to use [] notation on the class instance itself. 
    // (See line 2 of code in Main below.)         
    public T this[int i]
    {
        get
        {
            // This indexer is very simple, and just returns or sets 
            // the corresponding element from the internal array. 
            return arr[i];
        }
        set
        {
            arr[i] = value;
        }
    }
}

// This class shows how client code uses the indexer. 
class Program
{
    static void Main(string[] args)
    {
        // Declare an instance of the SampleCollection type.
        SampleCollection<string> stringCollection = new SampleCollection<string>();

        // Use [] notation on the type.
        stringCollection[0] = "Hello, World";
        System.Console.WriteLine(stringCollection[0]);
    }
}
// Output: 
// Hello, World.

Dica

Para obter mais exemplos, consulte Seções relacionadas.

Visão geral dos indicadores

  • Indexadores permitem que objetos a ser indexados de maneira semelhante para matrizes.

  • Um acessador de get retorna um valor. Um acessador de set atribui um valor.

  • A palavra-chave isso é usado para definir os indicadores.

  • A palavra-chave valor é usado para definir o valor que está sendo atribuído pelo indexador de set .

  • Indexadores não precisam ser indexados por um valor inteiro; você pode definir como o mecanismo específico de consulta.

  • Indexadores podem ser sobrecarregados.

  • Indexadores podem ter mais de um parâmetro formal, por exemplo, ao acessar uma matriz bidimensional.

Seções relacionadas

Especificação da linguagem C#

Para obter mais informações, consulte a Especificação da linguagem C#. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso de C#.

Consulte também

Referência

Propriedades (Guia de Programação em C#)

Conceitos

Guia de Programação em C#