Indizadores (Guía de programación de C#)

Los indizadores permiten indizar las instancias de una clase o struct igual que como se hace con las matrices. Son similares a las propiedades, con la diferencia de que los descriptores de acceso utilizan parámetros.

En el ejemplo siguiente, se define una clase genérica y se proporcionan métodos de acceso get y set sencillos como medio de asignar y recuperar valores. La clase Program crea una instancia de esta clase para almacenar cadenas.

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]);
    }
}

Información general de los indizadores

  • Los indizadores permiten indizar objetos de manera similar a como se hace con las matrices.

  • Un descriptor de acceso get devuelve un valor. Un descriptor de acceso set asigna un valor.

  • La palabra clave this se utiliza para definir indizadores.

  • La palabra clave value se utiliza para definir el valor asignado por el indizador set.

  • Los indizadores no tienen que ser indizados por un valor entero; depende de usted que defina el mecanismo de búsqueda concreto.

  • Se pueden sobrecargar los indizadores.

  • Los indizadores pueden tener más de un parámetro formal, por ejemplo, al tener acceso a una matriz bidimensional.

Secciones relacionadas

Especificación del lenguaje C#

Para obtener más información, vea la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.

Vea también

Referencia

Propiedades (Guía de programación de C#)

Conceptos

Guía de programación de C#