Procedura: dichiarare un oggetto utilizzando un inizializzatore di oggetto (Visual Basic)

Gli inizializzatori di oggetto consentono di dichiarare e creare un'istanza di una classe in una singola istruzione. Inoltre, è possibile inizializzare contemporaneamente uno o più membri dell'istanza, senza richiamare un costruttore con parametri.

Quando si usa un inizializzatore di oggetto per creare un'istanza di un tipo denominato, viene chiamato il costruttore senza parametri per la classe, seguito dall'inizializzazione dei membri designati nell'ordine specificato.

La routine seguente mostra come creare un'istanza di una classe Student in tre diversi modi. La classe include proprietà quali nome, cognome e anno di corso. Ognuna delle tre dichiarazioni crea una nuova istanza di Student, con la proprietà First impostata su "Michael", la proprietà Last impostata su "Tucker" e tutti gli altri membri impostati sui relativi valori predefiniti. Il risultato di ogni dichiarazione nella routine è equivalente all'esempio seguente, in cui non viene usato un inizializzatore di oggetto.

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

Per un'implementazione della classe Student, vedere Procedura: Creare un elenco di elementi. È possibile copiare il codice da tale argomento per configurare la classe e creare un elenco di oggetti Student da usare.

Per creare un oggetto di una classe denominata usando un inizializzatore di oggetto

  1. Iniziare la dichiarazione come se si prevedesse di usare un costruttore.

    Dim student1 As New Student

  2. Digitare la parola chiave With, seguita da un elenco di inizializzazione tra parentesi graffe.

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

  3. Nell'elenco di inizializzazione includere ogni proprietà che si vuole inizializzare e assegnarvi un valore iniziale. Il nome della proprietà è preceduto da un punto.

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

    È possibile inizializzare uno o più membri della classe.

  4. In alternativa, è possibile dichiarare una nuova istanza della classe e quindi assegnarvi un valore. Innanzitutto, dichiarare un'istanza di tipo Student:

    Dim student2 As Student

  5. Iniziare a creare un'istanza di Student come al solito.

    Dim student2 As Student = New Student

  6. Digitare With e quindi un inizializzatore di oggetto per inizializzare uno o più membri della nuova istanza.

    Dim student2 As Student = New Student With {.First = "Michael", 
                                                .Last = "Tucker"}
    
  7. È possibile semplificare la definizione nel passaggio precedente omettendo As Student. Se si esegue questa operazione, il compilatore determina che student3 è un'istanza di Student usando l'inferenza del tipo locale.

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

    Per altre informazioni, vedere Inferenza del tipo di variabile locale.

Vedi anche