Indexador

Definición - ¿Qué significa Indexador?

Un indexador, en el contexto de C #, es un miembro de clase que se utiliza para proporcionar capacidades de indexación similares a matrices para acceder fácilmente a las propiedades del objeto. Un indexador se usa principalmente cuando una matriz está encapsulada dentro de un tipo.

La sintaxis simple de un indexador ayuda a las aplicaciones cliente a acceder a grupos de elementos como un miembro de objeto de matriz (tipo, clase o estructura). Un indexador proporciona un método indirecto para insertar lógica de verificación de límites. Debido a su naturaleza intuitiva, un indexador mejora la legibilidad del código.

Un indexador se usa a menudo para implementar una pila de modo que se pueda acceder a su contenido sin eliminar elementos. La implementación del indexador de Java es similar a C #. Generalmente, los indexadores se pueden utilizar en el código de la biblioteca, debido a su facilidad de uso y flexibilidad.

Techinfo explica Indexer

Aunque los indexadores son similares a las propiedades, utilizan parámetros diferentes. Las propiedades se identifican por su nombre, mientras que los indexadores se indican mediante la firma y el uso de la palabra clave "esto". Se puede acceder a las propiedades a través de miembros, pero a los indexadores se accede a través de elementos. A diferencia de las propiedades, un compilador de C # no permite el uso de indexadores estáticos.

Un indexador es conveniente porque sus instancias de clase y estructura están indexadas como matrices y usan la notación de corchetes para acceder a un elemento. Los indexadores se conocen como matrices inteligentes. Los descriptores de acceso son los componentes del indexador get y set que permiten la obtención y configuración de valores, respectivamente. Según el tipo de miembro requerido para la búsqueda, se declara un indexador con la firma adecuada. La palabra clave "esto" se utiliza para definir indexadores y "Valor" se utiliza para asignar el acceso del conjunto.

El tipo y los parámetros de un indexador deben ser tan accesibles como el propio indexador. El número y los tipos de argumentos formales se conocen mediante la firma de un indexador, pero no los nombres de los tipos o argumentos. El tipo de retorno debe ser un tipo C # válido. Un indexador debe tener al menos un parámetro.

Los indexadores de clases pueden estar sobrecargados y tener diferentes firmas. Como los indexadores no se consideran variables, no se pueden utilizar como parámetros "ref" o "out". El lenguaje cruzado usa el nombre predeterminado Item, cuando no se especifica en la declaración. Los descriptores de acceso implementados con indexadores podrían estar sobrecargados con varios tipos. Los indexadores permiten pasar más de un parámetro formal, como al acceder a una matriz bidimensional. Los indexadores abstractos se implementan simplemente declarando los descriptores de acceso get / set en la clase base y agregando el código de la clase derivada.

Aunque los indexadores también se utilizan en interfaces, las declaraciones de clases difieren. Los descriptores de acceso del indexador de interfaz no utilizan modificadores y no tienen cuerpo. Los indexadores también se utilizan en interfaces para indicar si son de solo lectura, de solo escritura o de lectura y escritura. De acuerdo con las pautas de diseño, implementar la estrategia correcta de manejo de errores es fundamental cuando se utilizan los descriptores de acceso get y set, además de proporcionar la documentación de excepción de error requerida para los indexadores. Se recomienda restringir el acceso al nivel requerido para evitar valores de configuración maliciosos. Esta definición se escribió en el contexto de C #