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 Friend
Protected Friend
nebo výsledkem je chyba za běhu.