Índice:
Definição - O que significa Indexador?
Um indexador, no contexto de C #, é um membro da classe usado para fornecer recursos de indexação do tipo matriz para facilitar o acesso à propriedade do objeto. Um indexador é usado principalmente quando uma matriz é encapsulada dentro de um tipo.
A sintaxe simples de um indexador ajuda os aplicativos clientes a acessar grupos de elementos como um membro do objeto de matriz (tipo, classe ou estrutura). Um indexador fornece um método indireto de inserção da lógica de verificação de limites. Devido à sua natureza intuitiva, um indexador melhora a legibilidade do código.
Um indexador é frequentemente usado para implementar uma pilha para que seu conteúdo possa ser acessado sem a remoção do item. A implementação do indexador Java é semelhante ao C #. Geralmente, os indexadores podem ser usados no código da biblioteca, devido à sua facilidade de uso e flexibilidade.
Techopedia explica Indexer
Embora os indexadores sejam semelhantes às propriedades, eles usam parâmetros diferentes. As propriedades são identificadas pelo nome, enquanto os indexadores são denotados pela assinatura e pelo uso da palavra-chave "this". As propriedades podem ser acessadas por meio de membros, mas os indexadores são acessados por meio de elementos. Diferentemente das propriedades, um compilador C # não permite o uso de indexador estático.
Um indexador é conveniente porque suas instâncias de classe e estrutura são indexadas como matrizes e usam a notação de colchete para acessar um elemento. Os indexadores são conhecidos como matrizes inteligentes. Os acessadores são os componentes do indexador get e set que ativam a busca e a configuração de valor, respectivamente. Com base no tipo de membro necessário para pesquisa, um indexador é declarado com a assinatura apropriada. A palavra-chave "this" é usada para definir indexadores e "Value" é usado para atribuir o acessador definido.
O tipo e os parâmetros de um indexador devem ser tão acessíveis quanto o próprio indexador. O número e os tipos de argumentos formais são conhecidos pela assinatura de um indexador, mas não os nomes dos tipos ou argumentos. O tipo de retorno deve ser um tipo C # válido. Um indexador deve ter pelo menos um parâmetro.
Os indexadores de classe podem estar sobrecarregados e ter assinaturas diferentes. Como os indexadores não são considerados variáveis, eles não podem ser usados como parâmetros "ref" ou "out". A linguagem cruzada usa o nome padrão Item, quando não especificado na declaração. Os acessadores implementados com indexadores podem ser sobrecarregados com vários tipos. Os indexadores permitem passar mais de um parâmetro formal, como acessar uma matriz bidimensional. Os indexadores abstratos são implementados simplesmente declarando os acessadores get / set na classe base e adicionando o código da classe derivada.
Embora os indexadores também sejam usados em interfaces, as declarações de classe diferem. Os acessadores do indexador de interface não usam modificadores e não possuem um corpo. Os indexadores também são usados nas interfaces para indicar se são somente leitura, somente gravação ou leitura e gravação. De acordo com as diretrizes de design, a implementação da estratégia correta de tratamento de erros é crítica ao usar os acessadores get e set, além de fornecer a documentação de exceção de erro necessária para os indexadores. Recomenda-se restringir o acessador ao nível necessário para evitar valores de conjunto mal-intencionados. Esta definição foi escrita no contexto de C #
