Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O compilador do Visual Basic executa um processo chamado binding quando um objeto é atribuído a uma variável de objeto. Um objeto é vinculado antecipadamente quando é atribuído a uma variável declarada como sendo de um tipo de objeto específico. Os objetos vinculados antecipadamente permitem que o compilador aloque memória e execute outras otimizações antes que um aplicativo seja executado. Por exemplo, o fragmento de código a seguir declara uma variável 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)
Como FileStream é um tipo de objeto específico, a instância atribuída a FS é vinculada antecipadamente.
Por outro lado, um objeto é vinculado tardiamente 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 dos objetos ligados 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 vinculação antecipada
Você deve usar objetos de ligação antecipada sempre que possível, porque eles permitem que o compilador faça otimizações importantes que produzem aplicativos mais eficientes. Os objetos de ligação antecipada são significativamente mais rápidos do que os objetos de ligação tardia e tornam o seu código mais fácil de ler e manter, indicando exatamente que tipo de objetos estão a ser utilizados. Outra vantagem da vinculação antecipada é que ela permite recursos úteis, como autocompletar código e Ajuda dinâmica, porque o ambiente de desenvolvimento integrado (IDE) do Visual Studio pode determinar exatamente com que tipo de objeto você está trabalhando enquanto edita o código. A vinculação antecipada reduz o número e a gravidade dos erros em tempo de execução porque permite que o compilador relate erros quando um programa é compilado.
Observação
A vinculação tardia só pode ser usada para acessar membros do tipo declarados como Public. O acesso a membros declarados como Friend ou Protected Friend resulta em um erro em tempo de execução.
Ver também
- CreateObject
- Tempo de vida do objeto: como os objetos são criados e destruídos
- Tipo de dados de objeto