C#: indexadores que usan strings como índice

Requisito previo : Propiedades en C#

Los indexadores permiten que las instancias de una clase o estructura se indexen como arrays. Al usar la clase de indexadores, se comportará como una array virtual. El valor indexado se puede establecer o recuperar sin especificar explícitamente un tipo o miembro de instancia. Los indexadores se parecen a las propiedades excepto que sus accesores toman parámetros. Los indexadores son casi similares a las propiedades . La principal diferencia entre los indexadores y las propiedades es que los usuarios de los indexadores tomarán parámetros.

Indexadores que usan una string como índice:

Este método le dará más información, legibilidad. Si queremos recuperar información usando una string como índice.

Ejemplo:

ic["username"] = "user12";  
ic["password"] = "12345";  

Esto dará más legibilidad que el código que se proporciona a continuación.

ic[0] = "user12";  
ic[1] = "12345";  

Sintaxis:

[access_modifier] [return_type] this [argument_list]
{
 get  
 {
    // retrieval code or code to get the value 
 }
 set  
 {
   // code for setting value to member
 }

En la sintaxis anterior:

  • access_modifier : puede ser público, privado, protegido o interno.
  • return_type : puede ser cualquier tipo de C# válido. En este caso, será de tipo string.
  • this : Es la palabra clave que apunta al objeto de la clase actual.
  • argument_list : Esto especifica la lista de parámetros del indexador.
  • get{ } y set { } : estos son los accesores.

Ejemplo:

C#

// C# program to illustrate the Indexers 
// Using String as an Index 
using System; 
  
// class declaration 
class IndexerPOC 
{ 
  
    // class members 
    private string[] val = new string[4]; 
    
    // indexer array 
    private string[] indices={"username","password","email","Book"};
  
    // Indexer declaration 
    // Here pubic is the modifier 
    // string is the return type of 
    // Indexer and "this" is the keyword 
      // which refer to the calling object.
    // having parameters list 
    public string this[string index] 
    { 
  
        // get Accessor 
        // retrieving the values 
        // stored in val[] array 
        // of strings using string indexer.
        get
        { 
  
            return val[Array.IndexOf(indices,index)]; 
        } 
  
        // set Accessor 
        // setting the value at 
        // passed i of val 
        set
        { 
  
            // value keyword is used 
            // to define the value 
            // being assigned by the 
            // set indexer. 
            val[ Array.IndexOf(indices,index)] = value; 
        } 
    } 
} 
  
// Driver Class 
class Program { 
      
    // Main Method 
    public static void Main() { 
          
        // creating an object of parent class which 
        // acts as primary address for using Indexer 
        IndexerPOC ic = new IndexerPOC(); 
  
        // Inserting values in ic[] 
        // Here we are using the object 
        // of class as an array 
        ic["username"] = "user12"; 
        ic["password"] = "12345"; 
        ic["email"] = "user123@gmail.com"; 
        ic["Book"]="CSHARP";
        Console.Write("Printing values stored in objects used as arrays\n"); 
          
        // printing values 
        Console.WriteLine("UserName = {0}", ic["username"]); 
        Console.WriteLine("Password = {0}", ic["password"]); 
        Console.WriteLine("Email = {0}", ic["email"]); 
        Console.WriteLine("Book = {0}", ic["Book"]); 
      
    } 
}

Producción:

Printing values stored in objects used as arrays
UserName = user12
Password = 12345
Email = user123@gmail.com
Book = CSHARP

Publicación traducida automáticamente

Artículo escrito por mvikas886 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *