Statické a pozdní vazby (Visual Basic)

Kompilátor Visual Basic provádí proces volaný binding při přiřazení objektu k proměnné objektu. Objekt je v rané fázi svázán , když je přiřazen k proměnné deklarované jako určitý typ objektu. Dříve vázané objekty 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, která má být 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á k FS dřívější vazbě.

Naproti tomu objekt je zpožděný, když je přiřazen k proměnné deklarované jako typ Object. Objekty tohoto typu mohou obsahovat odkazy na libovolný objekt, ale nemají mnoho výhod dříve vázané objekty. Například následující fragment kódu deklaruje proměnnou objektu pro uložení objektu vráceného 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 předčasné vazby

Kdykoli 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 tím, že přesně hlásí, jaký druh objektů se používají. Další výhodou předčasné vazby je, že umožňuje užitečné funkce, jako je automatické dokončování kódu a dynamická nápověda, protože Visual Studio integrované vývojové prostředí (IDE) může přesně určit typ objektu, se kterým pracujete při úpravách kódu. Časná vazba snižuje počet a závažnost chyb za běhu, protože umožňuje kompilátoru 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 FriendProtected Friend nebo výsledkem je chyba za běhu.

Viz také