Compartilhar via


(Visual Basic) de vinculação antecipada e atrasada

O Visual Basic compilador executa um processo chamado binding quando um objeto for atribuído a uma variável de objeto.Um objeto é acoplamento antecipado quando é atribuído a uma variável declarada como sendo do tipo de objeto específico.Objetos de vínculo anterior permitem que o compilador alocar a memória e execute outras otimizações antes de um aplicativo é executado.Por exemplo, o fragmento de código a seguir declara uma variável para ser do tipo FileStream:

'  Create a variable to hold a new object.
Dim FS As System.IO.FileStream
' Assign a new object to the variable.
FS = New System.IO.FileStream("C:\tmp.txt", 
    System.IO.FileMode.Open)

Porque FileStream é um tipo de objeto específico, a instância atribuído a FS é um acoplamento antecipado.

Por outro lado, um objeto é tardia quando é atribuído a uma variável declarada como sendo do tipo Object.Objetos desse tipo podem conter referências a qualquer objeto, mas não têm muitas das vantagens de objetos vinculados antecipadamente.Por exemplo, o fragmento de código a seguir declara uma variável de objeto para conter um objeto retornado pela CreateObject função:

' To use this example, you must have Microsoft Excel installed on your computer.
' Compile with Option Strict Off to allow late binding.
Sub TestLateBinding()
    Dim xlApp As Object
    Dim xlBook As Object
    Dim xlSheet As Object
    xlApp = CreateObject("Excel.Application")
    ' Late bind an instance of an Excel workbook.
    xlBook = xlApp.Workbooks.Add
    ' Late bind an instance of an Excel worksheet.
    xlSheet = xlBook.Worksheets(1)
    xlSheet.Activate()
    ' Show the application.
    xlSheet.Application.Visible = True
    ' Place some text in the second row of the sheet.
    xlSheet.Cells(2, 2) = "This is column B row 2"
End Sub

Vantagens da Ligação Atual

Você deve usar objetos vinculados antecipadamente, sempre que possível, pois permitem que o compilador tornar importantes otimizações que produzem aplicativos mais eficientes.Objetos vinculados antecipadamente são consideravelmente mais rápidos que os objetos de ligação tardia e tornam seu código mais fácil de ler e manter informando exatamente que tipo de objetos estão sendo usados.Outra vantagem de vinculação antecipada é que ele permite que recursos úteis, como auto-completar de código automático e ajuda dinâmica porque a Visual Studio o ambiente de desenvolvimento integrado (IDE) pode determinar exatamente qual tipo de objeto você está trabalhando com ao editar o código.Vinculação antecipada reduz o número e a gravidade dos erros de tempo de execução, pois permite que o compilador para relatar erros quando um programa é compilado.

ObservaçãoObservação

Ligação tardia só pode ser usado para acessar membros de tipo que são declarados como Public.Acesso a membros declarados como Friend ou Protected Friend resulta em um erro de tempo de execução.

Consulte também

Referência

Tipo de dados Object

CreateObject

Conceitos

Tempo de vida do objeto: Como os objetos são criados e destruído (Visual Basic)