Indexers (C# Programming Guide)

Os Indexadores permitem que as instâncias de uma classe ou estrutura sejam indexadas apenas como vetores. Os indexadores semelhantes aos Propriedades , exceto que os seus assessores assumam parâmetros.

No exemplo a seguir, uma classe genérica é definida e fornecida com o simples obter e set métodos de assessor como um meio de atribuir e recuperar valores. O Program classe cria uma instância dessa classe para armazenar seqüências 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]);
    }
}

Visão geral de indexadores

  • Indexadores permitem que objetos sejam indexados de maneira semelhante a vetores.

  • A get acessador retorna um valor. A set acessador atribui um valor.

  • O Este palavra-chave é usada para definir os indexadores.

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

  • Os indexadores não precisam ser indexados por um valor inteiro; é você como definir o mecanismo de pesquisa específicos.

  • Indexadores podem ser sobrecarregados.

  • Indexadores podem ter mais do que um parâmetro formal, por exemplo, quando acessa um vetor de duas dimensões.

Seções relacionadas

Especificação da linguagem C#

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

Consulte também

Referência

Properties (C# Programming Guide)

Conceitos

C# Programming Guide