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

Der Visual Basic-Compiler führt einen als binding bezeichneten Vorgang aus, wenn ein Objekt einer Objektvariablen zugewiesen wird. Ein 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. Im folgenden Codefragment wird beispielsweise eine Variable des Typs FileStream deklariert:

'  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 allen Objekten beinhalten, 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 aufnimmt:

' 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 der frühen Bindung besteht in der Aktivierung nützlicher Funktionen, z. B. der automatischen Codevervollständigung und der dynamischen Hilfe, da die integrierte Entwicklungsumgebung (Integrated Development Environment, IDE) von Visual Studio genau ermitteln kann, welchen Objekttyp Sie während der Bearbeitung des Codes verwenden. Die frühe Bindung reduziert die Anzahl und den Schweregrad der Laufzeitfehler, da sie dem Compiler die Ausgabe von Fehlern während der Programmkompilierung ermöglicht.

Tipp

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.

Siehe auch

Referenz

Object-Datentyp

CreateObject

Konzepte

Objektlebensdauer: Erstellen und Zerstören von Objekten (Visual Basic)