Indexadores (guia de programação C#)

Os indexadores permitem que instâncias de classe ou struct a serem indexados como matrizes. Se parecem com os indexadoresPropriedades, exceto pelo fato de que seus acessadores assumam parâmetros.

No exemplo a seguir, genérica é uma classe definida e fornecida com o simples obter and conjuntométodos de acessor sistema autônomo um meio de atribuir e recuperar valores.The Program classe cria uma instância dessa classe para armazenar seqüências de caracteres.

class SampleCollection<T>
{
    private T[] arr = new T[100];
    public T this[int i]
    {
        get
        {
            return arr[i];
        }
        set
        {
            arr[i] = value;
        }
    }
}

// This class shows how client code uses the indexer
class Program
{
    static void Main(string[] args)
    {
        SampleCollection<string> stringCollection = new SampleCollection<string>();
        stringCollection[0] = "Hello, World";
        System.Console.WriteLine(stringCollection[0]);
    }
}

Visão geral de indexadores

  • Os indexadores permitem objetos a serem indexados de forma semelhante aos arrays.

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

  • The Isso palavra-chave é usada para definir os indexadores.

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

  • Indexadores não precisam ser indexadas por um valor inteiro; é a você como definir o mecanismo de pesquisa específicos.

  • Os indexadores podem ser sobrecarregados.

  • Os 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 as seções a seguir no Especificação da linguagem C#:

  • 1.6.7.3 Os indexadores

  • 10.2.9.3 Nomes de membro reservados para os indexadores

  • 10.9 Indexadores

  • 13.2.4 Interface indexadores

Consulte também

Conceitos

Guia de Programação C#

Referência

Propriedades (Guia de programação do C#)