Sdílet prostřednictvím


Časná a pozdní vazba (Visual Basic)

Kompilátor jazyka Visual Basic provádí proces, který se volá binding , když je objekt přiřazen k proměnné objektu. Objekt je v rané fázi svázaný , když je přiřazen k proměnné deklarované jako konkrétní typ objektu. Objekty s časnou vazbou umožňují kompilátoru přidělit paměť a provést další optimalizace před spuštěním aplikace. Například následující fragment kódu deklaruje proměnnou typu 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)

Vzhledem k tomu, že FileStream je konkrétní typ objektu, je instance přiřazená FS vázána staticky.

Naproti tomu objekt je pozdně vázaný, když je přiřazen k proměnné deklarované jako typ Object. Objekty tohoto typu mohou obsahovat odkazy na libovolný objekt, ale postrádají mnoho výhod staticky vázaných objektů. Například následující fragment kódu deklaruje proměnnou objektu, která bude obsahovat objekt vrácený CreateObject funkcí:

' 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

Výhody včasné vazby

Pokud je to možné, měli byste použít objekty s časnou vazbou, protože umožňují kompilátoru provádět důležité optimalizace, které poskytují efektivnější aplikace. Objekty s časnou vazbou jsou výrazně rychlejší než objekty s pozdní vazbou a usnadňují čtení a údržbu kódu díky přesnému typu objektů, které se používají. Další výhodou prvotní vazby je, že umožňuje užitečné funkce, jako je automatické dokončování kódu a dynamická nápověda, protože integrované vývojové prostředí (IDE) sady Visual Studio dokáže přesně určit, s jakým typem objektu při úpravách kódu pracujete. Časná vazba snižuje počet a závažnost chyb za běhu, protože kompilátoru umožňuje hlásit chyby při kompilaci programu.

Poznámka:

Pozdní vazby lze použít pouze pro přístup k členům typu, které jsou deklarovány jako Public. Přístup k členům deklarovaným jako Friend nebo Protected Friend má za následek chybu za běhu.

Viz také