Compartilhar via


Como declarar um objeto usando um inicializador de objeto (Visual Basic)

Inicializadores de objeto permitem declarar e instanciar uma instância de uma classe em uma única instrução. Além disso, você pode inicializar um ou mais membros da instância ao mesmo tempo, sem invocar um construtor parametrizado.

Quando você usa um inicializador de objeto para criar uma instância de um tipo nomeado, o construtor sem parâmetros para a classe é chamado, seguido pela inicialização de membros designados na ordem especificada.

O procedimento a seguir mostra como criar uma instância de uma Student classe de três maneiras diferentes. A classe tem propriedades de nome, sobrenome e ano de classe, entre outras. Cada uma das três declarações cria uma nova instância de Student, com propriedade First definida como "Michael", propriedade Last definida como "Tucker" e todos os outros membros definidos como seus valores padrão. O resultado de cada declaração no procedimento é equivalente ao exemplo a seguir, que não usa um inicializador de objeto.

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

Para obter uma implementação da Student classe, consulte Como criar uma lista de itens. Você pode copiar o código desse tópico para configurar a classe e criar uma lista de Student objetos com os quais trabalhar.

Para criar um objeto de uma classe nomeada usando um inicializador de objeto

  1. Inicie a declaração como se planejasse usar um construtor.

    Dim student1 As New Student

  2. Digite a palavra-chave With, seguida por uma lista de inicialização em chaves.

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

  3. Na lista de inicialização, inclua cada propriedade que você deseja inicializar e atribua um valor inicial a ela. O nome da propriedade é precedido por um período.

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

    Você pode inicializar um ou mais membros da classe.

  4. Como alternativa, você pode declarar uma nova instância da classe e atribuir um valor a ela. Primeiro, declare uma instância do tipo Student:

    Dim student2 As Student

  5. Inicie a criação de uma instância da Student maneira normal.

    Dim student2 As Student = New Student

  6. Digite With e, em seguida, um inicializador de objeto para inicializar um ou mais membros da nova instância.

    Dim student2 As Student = New Student With {.First = "Michael", 
                                                .Last = "Tucker"}
    
  7. Você pode simplificar a definição na etapa anterior omitindo As Student. Se você fizer isso, o compilador determinará que student3 é uma instância usando inferência de Student tipo local.

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

    Para obter mais informações, confira Inferência de tipo de variável local.

Confira também