Compartilhar via


Declaração With...End With (Visual Basic)

Executa uma série de instruções fazendo referência repetida a um único objeto ou estrutura.

With object
    [ statements ]
End With

Partes

  • object
    Obrigatório.Variável ou expressão.Pode ser avaliada como qualquer tipo de dados, inclusive tipos elementares.

  • statements
    Opcional.Um ou mais instruções entre With e End With que executam no object.

  • End With
    Obrigatório.Finaliza a definição do bloco With.

Comentários

With...End With permite que você execute uma série de instruções em um objeto especificado sem requalificar o nome do objeto.Se o caminho de qualificação para o objeto for longo, usar With...End With pode melhorar o desempenho.Um bloco With também reduz digitação repetitiva do caminho de qualificação e o risco de erros de digitação um dos seus elementos.

Por exemplo, para alterar um número de propriedades diferentes em um único objeto, coloque as instruções de atribuição a propriedade dentro de With...End With,consultando o objeto apenas uma vez em vez de para cada atribuição de propriedade.

Regras

  • Tipos de dados O tipo de dados do object pode ser qualquer classe ou estrutura tipo ou até mesmo um Visual Basic tipo elementar como Integer.O .NET Framework oferece suporte a todos tipos elementares com classes ou estruturas que possuem membros que você pode acessar dentro de um bloco With.

  • Declaração Você deve declarar object antes de inserir o bloco With.Não é possível declará-lo na instrução With.

  • Número de Iterações. Um bloco With não é uma construção iterativa.A menos que haja um loop dentro do bloco, as instruções são executadas somente uma vez.

  • Estruturas de aninhamento. Você pode aninhar estruturas With...End With colocando uma estrutura dentro de outra.Para um exemplo, consulte Como: Executar várias ações em um objeto.

    No entanto, como membros de instruções externas são mascarados dentro as instruções internas, você deve fornecer uma referência de objeto totalmente qualificado em um bloco With interno a qualquer membro de um objeto em um bloco With externo.

    Você também pode aninhar diferentes tipos de estruturas de controle uma dentro da outra.Para obter mais informações, consulte Estruturas de controle aninhadas.

  • Transferindo para fora da estrutura. Visual Basic não dá suporte a Declaração Saída (Visual Basic) para transferir controle para fora de um bloco With.Se você precisar sair antes todas as instruções foram executadas, coloque um rótulo na instrução End With e use Instrução GoTo para ramificá-la.Para obter mais informações, consulte Como: Instruções do rótulo.

    Você não pode transferir controle seja de fora de um bloco With ou para dentro dele, ou de dentro para fora dele.Você pode chamar um procedimento de dentro de bloco, mas o controle retornará para a instrução a seguir.

  • Acessando outros objetos. Depois ter de inserir um blocoWith, você não pode reatribuir object até que você já se passou a instrução End With.Portanto, você pode acessar os métodos e propriedades de apenas o objeto especificado sem qualificá-los.Você pode usar métodos e propriedades dos outros objetos, mas você deverá qualificá-los com seus nomes de objeto.

Exemplo

O exemplo a seguir usa um bloco With para executar uma série de instruções em um único objeto.O exemplo supõe que o objeto testObject já foi criado e expõe as propriedades de referência.

With testObject
    .Height = 100
    .Text = "Hello, World"
    .ForeColor = System.Drawing.Color.Green
    .Font = New System.Drawing.Font(.Font, _
        System.Drawing.FontStyle.Bold)
End With

Com palavras-chave no objeto Initializers

Visual Basic 2008 apresenta um novo uso de With em inicializadores de objeto.Para mais informações e um exemplo, consulte Inicializadores de objeto: Tipos nomeados e anônimo e Tipos anônimos.

Consulte também

Tarefas

Como: Executar várias ações em um objeto

Como: Instruções do rótulo

Conceitos

Estruturas de controle aninhadas

Inicializadores de objeto: Tipos nomeados e anônimo

Tipos anônimos

Referência

Declaração Saída (Visual Basic)

Instrução GoTo