Frühes und spätes Binden (Visual Basic)

Der Visual Basic Compiler führt einen Prozess aus, der aufgerufen wird, wenn einem Objekt eine Objektvariable binding zugewiesen wird. Objekt wird früh gebunden, wenn es einer Variablen zugeordnet wird, für die ein spezifischer Objekttyp deklariert wurde. Früh gebundene Objekte ermöglichen es dem Compiler, die Speicherbelegung und andere Optimierungen vor der Ausführung einer Anwendung durchzuführen. Das folgende Codefragment deklariert beispielsweise eine Variable des Typs 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)

Da FileStream ein spezifischer Objekttyp ist, handelt es sich bei der Zuweisung der Instanz zu FS um eine frühe Bindung.

Im Gegensatz dazu wird ein Objekt spät gebunden, wenn es einer Variablen zugeordnet wird, für die der Typ Object deklariert wurde. Objekte dieses Typs können Verweise zu beliebigen Objekten enthalten, jedoch gehen einige der Vorteile früh gebundener Objekte verloren. Das folgende Codefragment deklariert beispielsweise eine Objektvariable, die ein von der CreateObject-Funktion zurückgegebenes Objekt enthalten soll:

' 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

Vorteile der frühen Bindung

Sie sollten soweit möglich früh gebundene Objekte verwenden, da diese dem Compiler wichtige Optimierungen ermöglichen, die zu effizienteren Anwendungen führen. Früh gebundene Objekte sind bedeutend schneller als spät gebundene Objekte, verbessern die Lesbarkeit des Codes und erleichtern dessen Verwaltung, weil sie die Art der verwendeten Objekte genau angeben. Ein weiterer Vorteil für die frühe Bindung ist, dass es nützliche Features wie automatische Codevervollständigen und dynamische Hilfe ermöglicht, da die Visual Studio integrierte Entwicklungsumgebung (IDE) genau bestimmen kann, mit welcher Art von Objekt Sie arbeiten, während Sie den Code bearbeiten. Die frühe Bindung reduziert die Anzahl und den Schweregrad von Laufzeitfehlern, da sie dem Compiler die Ausgabe von Fehlern während der Programmkompilierung ermöglicht.

Hinweis

Die späte Bindung kann nur für den Zugriff auf als Public deklarierte Typmember verwendet werden. Der Zugriff auf als Friend oder Protected Friend deklarierte Member führt zu Laufzeitfehlern.

Weitere Informationen