Cómo: Declarar un objeto usando un inicializador de objeto (Visual Basic)

Los inicializadores de objeto permiten declarar y crear instancias de una instancia de una clase en una misma instrucción. Además, se pueden inicializar uno o varios miembros de la instancia al mismo tiempo, sin tener que invocar un constructor con parámetros.

Cuando se usa un inicializador de objeto para crear una instancia de un tipo con nombre, se llama al constructor sin parámetros de dicha clase, seguido de la inicialización de los miembros designados en el orden especificado.

En el siguiente procedimiento se muestra cómo crear una instancia de una clase Student de tres maneras diferentes. La clase tiene propiedades de nombre, apellido y curso, entre otras. Cada una de las tres declaraciones crea una instancia de Student, con la propiedad First establecida en "Michael", la propiedad Last establecida en "Tucker" y todos los demás miembros establecidos en sus valores predeterminados. El resultado de cada declaración del procedimiento es equivalente al ejemplo siguiente, donde no se usa un inicializador de objeto.

Dim student0 As New Student
With student0
    .First = "Michael"
    .Last = "Tucker"
End With

Para obtener una implementación de la clase Student, vea Procedimiento para crear una lista de elementos. Puede copiar el código de ese tema para configurar la clase y crear una lista de objetos Student con los que trabajar.

Para crear un objeto de una clase con nombre mediante un inicializador de objeto

  1. Comience la declaración como si tuviera previsto usar un constructor.

    Dim student1 As New Student

  2. Escriba la palabra clave With, seguida de una lista de inicialización entre llaves.

    Dim student1 As New Student With { <initialization list> }

  3. En la lista de inicialización, incluya cada propiedad que quiera inicializar y asígneles un valor inicial. El nombre de la propiedad va precedido de un punto.

    Dim student1 As New Student With {.First = "Michael", 
                                      .Last = "Tucker"}
    

    Se pueden inicializar uno o varios miembros de la clase.

  4. Si lo desea, puede declarar una nueva instancia de la clase y, a continuación, asignarle un valor. Primero, declare una instancia de Student:

    Dim student2 As Student

  5. Comience la creación de una instancia de Student del modo habitual.

    Dim student2 As Student = New Student

  6. Escriba With y, a continuación, un inicializador de objeto para inicializar uno o varios miembros de la nueva instancia.

    Dim student2 As Student = New Student With {.First = "Michael", 
                                                .Last = "Tucker"}
    
  7. Para simplificar la definición del paso anterior, puede omitir As Student. Si lo hace, el compilador determina que student3 es una instancia de Student mediante una inferencia de tipo de variable local.

    Dim student3 = New Student With {.First = "Michael", 
                                     .Last = "Tucker"}
    

    Para obtener más información, vea Inferencia de tipo de variable local.

Consulte también