Inicializador de objetos y colecciones en C#

Un inicializador de objetos y colecciones es una característica interesante y muy útil del lenguaje C#. Esta función proporciona una forma diferente de inicializar un objeto de una clase o una colección. Esta función se introdujo en C# 3.0 o superior. Las principales ventajas de usarlos son que hacen que su código sea más legible, brindan una manera fácil de agregar elementos en colecciones y se usan principalmente en subprocesos múltiples.
 

Inicializador de objetos en C#

En el inicializador de objetos, puede inicializar el valor de los campos o propiedades de una clase en el momento de crear un objeto sin llamar a un constructor . En esta sintaxis, puede crear un objeto y luego esta sintaxis inicializa el objeto recién creado con sus propiedades, a la variable en la asignación. También puede colocar indexadores, para inicializar campos y propiedades, esta característica se introdujo en C# 6.0.
Ejemplo: en el siguiente ejemplo, la clase Geeks no contiene ningún constructor, simplemente creamos el objeto e inicializamos el valor al mismo tiempo usando llaves en el método principal. Esta inicialización de valores se conoce como inicializador de objetos.

CSharp

// C# program to illustrate
// object initializer syntax
using System;
 
class Geeks {
 
    public string author_name
    {
        get;
        set;
    }
    public int author_id
    {
        get;
        set;
    }
    public int total_article
    {
        get;
        set;
    }
}
 
class GFG {
 
    // Main method
    static public void Main()
    {
 
        // Initialize fields using
        // an object initializer
        Geeks obj = new Geeks() {
            author_name = "Ankita Saini",
            author_id = 102,
            total_article = 178};
         
        Console.WriteLine("Author Name: {0}", obj.author_name);
 
        Console.WriteLine("Author Id: {0}", obj.author_id);
 
        Console.WriteLine("Total no of articles: {0}",
                                   obj.total_article);
    }
}
Producción: 

Author Name: Ankita Saini
Author Id: 102
Total no of articles: 178

 

Nota: Cuando el compilador compila el programa anterior, asigna los valores al objeto como se muestra a continuación:

Geeks __geeks = new Geeks();
__geeks.author_name = "Ankita Saini";
__geeks.author_id = 102;
__geeks. total_article = 178;

Geeks obj =  __geeks; 

Inicializador de colección en C#

El inicializador de colección también es similar a los inicializadores de objetos. Las colecciones se inicializan de manera similar a como se inicializan los objetos usando un inicializador de objetos. O, en otras palabras, en general, usamos el método Add() para agregar elementos en colecciones, pero al usar un inicializador de colección puede agregar elementos sin usar el método Add().
Ejemplo :

CSharp

// C# program to illustrate how
// to create a SortedList using
// collection Initializer
using System;
using System.Collections;
 
class GFG {
 
    // Main Method
    static public void Main()
    {
 
        // Creating another SortedList
        // using  collection Initializer to
        // initialize sortedlist
        SortedList my_slist = new SortedList() {
                             { "b.09", 234 },
                             { "b.11", 395 },
                             { "b.01", 405 },
                             { "b.67", 100 },
                             { "b.55", 500 }};
        
        foreach(DictionaryEntry pair in my_slist)
        {
            Console.WriteLine("{0} and {1}", pair.Key, pair.Value);
        }
    }
}
Producción: 

b.01 and 405
b.09 and 234
b.11 and 395
b.55 and 500
b.67 and 100

 

Puntos importantes:

  • Se le permite inicializar la colección y el objeto al mismo tiempo.
    Ejemplo:

CSharp

var author1 = new Geeks() { author_name = "Soniya",
                            author_id = 103,
                            total_article = 120 };
 
var author2 = new Geeks() { author_name = "Siya",
                            author_id = 106,
                            total_article = 90 };
 
var author3 = new Geeks() { author_name = "Arpita",
                            author_id = 111,
                            total_article = 130 };
 
List<Geeks> author = new List<Geeks>() {
                                author1,
                                author2,
                                author3
};
  • También puede usar nulo como un elemento en el inicializador de la colección.
    Ejemplo:

CSharp

SortedList my_slist = new SortedList() {
                          { 1.2, "Cat" },
                          { 1.3, null },
                          { 1.5, 234 },};

Publicación traducida automáticamente

Artículo escrito por ankita_saini 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 *