(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çã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
Conceitos
Tempo de vida do objeto: Como os objetos são criados e destruído (Visual Basic)