Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Indexadores em C#: Faça Objetos Agirem como Arrays

Um indexador permite indexar um objeto como array. Ao definir indexador para classe, ela comporta-se como array virtual. Acessa instância usando operador [ ].

Sintaxe

Indexador unidimensional:

tipo_elemento this[int index]
{
    get { return valor_especificado_por_index; }
    set { define_valor_especificado_por_index; }
}

Uso de Indexadores

Declaração similar a propriedade. Usam get/set. Diferença: propriedades retornam/definem membro específico; indexadores retornam/definem valor particular da instância — quebram dados em partes indexadas.

Não têm nome; usam palavra-chave this referenciando instância do objeto.

Exemplo Básico

using System;

namespace IndexerApplication
{
    class IndexedNames
    {
        private string[] namelist = new string[size];
        static public int size = 10;

        public IndexedNames()
        {
            for (int i = 0; i < size; i++) namelist[i] = "N. A.";
        }

        public string this[int index]
        {
            get
            {
                string tmp = "";
                if (index >= 0 && index <= size - 1) tmp = namelist[index];
                return tmp;
            }
            set
            {
                if (index >= 0 && index <= size - 1) namelist[index] = value;
            }
        }

        static void Main(string[] args)
        {
            IndexedNames names = new IndexedNames();
            names[0] = "Zara";
            names[1] = "Riz";
            names[2] = "Nuha";
            names[3] = "Asif";
            names[4] = "Davinder";
            names[5] = "Sunil";
            names[6] = "Rubic";

            for (int i = 0; i < IndexedNames.size; i++)
                Console.WriteLine(names[i]);

            Console.ReadKey();
        }
    }
}

Saída:

Zara
Riz
Nuha
Asif
Davinder
Sunil
Rubic
N. A.
N. A.
N. A.

Indexadores Sobrecarregados

Indexadores podem ser sobrecarregados. Podem ter múltiplos parâmetros de tipos diferentes. Índices não precisam ser inteiros; podem ser strings, etc.

Exemplo com Indexador de String

public int this[string name]
{
    get
    {
        int index = 0;
        while (index < size)
        {
            if (namelist[index] == name) return index;
            index++;
        }
        return index;
    }
}

Uso

// Primeiro indexador (int)
for (int i = 0; i < IndexedNames.size; i++)
    Console.WriteLine(names[i]);

// Segundo indexador (string)
Console.WriteLine(names["Nuha"]); // Saída: 2

Saída adicional: 2 (índice de "Nuha")

Linguagem C

  1. C# Hello World – Criando Sua Primeira Aplicação C#
  2. Entendendo Palavras-chave e Identificadores em C#: Regras, Listas e Boas Práticas
  3. Domine Variáveis e Tipos de Dados Primitivos em C#: Guia Completo
  4. Operadores em C# – Guia Completo dos Operadores em C#
  5. Dominando Operadores Bitwise e Bit Shift em C#: Guia Abrangente
  6. Fundamentos de C#: Essenciais de Entrada e Saída
  7. Expressões, Instruções e Blocos em C#: Guia Completo com Exemplos Práticos
  8. Dominando Comentários em C#: Tipos, Boas Práticas e Documentação XML
  9. Dominando a Instrução Switch em C#: Sintaxe, Exemplos e Boas Práticas
  10. Operador Ternário em C#: Guia Conciso para Expressões Condicionais