Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você 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 é associado inicialmente quando ele é atribuído a uma variável declarada como de um tipo de objeto específico. Os objetos associados iniciais 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 como 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)
Uma vez que FileStream é um tipo de objeto específico, a instância atribuída a FS
é associada no início.
Por outro lado, um objeto é ligado tardiamente quando é atribuído a uma variável declarada como do tipo Object
. Objetos desse tipo podem conter referências a qualquer objeto, mas têm muitas das vantagens de objetos de associação inicial. 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 associação inicial
Você deve usar objetos com limite inicial sempre que possível, pois eles permitem que o compilador faça otimizações importantes que produzem aplicativos mais eficientes. Objetos com limite inicial são significativamente mais rápidos do que objetos com limite tardio e facilitam a leitura e a manutenção do código informando exatamente que tipo de objetos estão sendo usados. Outra vantagem da associação inicial é que ela permite recursos úteis, como preenchimento automático de código e Ajuda Dinâmica, pois o IDE (ambiente de desenvolvimento integrado) do Visual Studio pode determinar exatamente com qual tipo de objeto você está trabalhando ao editar o código. A associação antecipada reduz o número e a gravidade de erros em tempo de execução porque permite que o compilador relate erros quando um programa é compilado.
Observação
A associação tardia só pode ser usada para acessar membros de tipo que são declarados como Public
. Acessar membros declarados como Friend
ou Protected Friend
resulta em erro em tempo de execução.