Vroege en late binding (Visual Basic)

De Visual Basic compiler voert een proces uit dat wordt aangeroepen binding wanneer een object wordt toegewezen aan een objectvariabele. Een object is vroeg gebonden wanneer het is toegewezen aan een variabele die is gedeclareerd als van een specifiek objecttype. Met vroege afhankelijke objecten kan de compiler geheugen toewijzen en andere optimalisaties uitvoeren voordat een toepassing wordt uitgevoerd. Het volgende codefragment declareert bijvoorbeeld een variabele van het type 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)

Omdat FileStream dit een specifiek objecttype is, is het exemplaar waaraan het is toegewezen FS , vroeg gebonden.

Een object is daarentegen te laat gebonden wanneer het is toegewezen aan een variabele die is gedeclareerd om van het type Objectte zijn. Objecten van dit type kunnen verwijzingen bevatten naar elk object, maar ontbreken veel van de voordelen van vroege objecten. Met het volgende codefragment wordt bijvoorbeeld een objectvariabele gedeclareerd voor het opslaan van een object dat wordt geretourneerd door de CreateObject functie:

' 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

Voordelen van vroege binding

U moet waar mogelijk vroege afhankelijke objecten gebruiken, omdat hiermee de compiler belangrijke optimalisaties kan maken die efficiƫntere toepassingen opleveren. Vroege afhankelijke objecten zijn aanzienlijk sneller dan objecten met late grenzen en maken uw code gemakkelijker te lezen en te onderhouden door precies aan te geven welk soort objecten worden gebruikt. Een ander voordeel van vroege binding is dat het nuttige functies mogelijk maakt, zoals het automatisch aanvullen van code en Dynamische Help, omdat de Visual Studio integrated development environment (IDE) precies kan bepalen met welk type object u werkt terwijl u de code bewerkt. Vroege binding vermindert het aantal en de ernst van runtimefouten omdat hiermee de compiler fouten kan rapporteren wanneer een programma wordt gecompileerd.

Notitie

Late binding kan alleen worden gebruikt voor toegang tot type leden die zijn gedeclareerd als Public. Toegang tot leden die zijn gedeclareerd als Friend of Protected Friend resulteert in een runtimefout.

Zie ook