Wczesne i późne wiązania (Visual Basic)

Kompilator Visual Basic wykonuje proces wywoływanybinding, gdy obiekt jest przypisany do zmiennej obiektu. Obiekt jest wcześnie powiązany , gdy jest przypisany do zmiennej zadeklarowanej jako określony typ obiektu. Wczesne powiązane obiekty umożliwiają kompilatorowi przydzielanie pamięci i wykonywanie innych optymalizacji przed wykonaniem aplikacji. Na przykład następujący fragment kodu deklaruje zmienną 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)

Ponieważ FileStream jest określonym typem obiektu, wystąpienie przypisane do FS niego jest wcześnie powiązane.

Natomiast obiekt jest opóźniony, gdy jest przypisany do zmiennej zadeklarowanej jako typ Object. Obiekty tego typu mogą zawierać odwołania do dowolnego obiektu, ale nie mają wielu zalet wczesnych obiektów powiązanych. Na przykład następujący fragment kodu deklaruje zmienną obiektu do przechowywania obiektu zwróconego CreateObject przez funkcję:

' 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

Zalety wczesnego wiązania

Zawsze, gdy jest to możliwe, należy używać obiektów o wczesnej granicy, ponieważ umożliwiają kompilatorowi wykonywanie ważnych optymalizacji, które dają bardziej wydajne aplikacje. Wczesne powiązane obiekty są znacznie szybsze niż obiekty powiązane z opóźnieniem i ułatwiają odczytywanie i konserwowanie kodu przez określenie dokładnie, jakiego rodzaju obiektów są używane. Kolejną zaletą wczesnego powiązania jest włączenie przydatnych funkcji, takich jak automatyczne uzupełnianie kodu i dynamiczna pomoc, ponieważ Visual Studio zintegrowane środowisko projektowe (IDE) może określić dokładnie, z jakim typem obiektu pracujesz podczas edytowania kodu. Wczesne powiązanie zmniejsza liczbę i ważność błędów czasu wykonywania, ponieważ umożliwia kompilatorowi zgłaszanie błędów podczas kompilowania programu.

Uwaga

Późne powiązanie może służyć tylko do uzyskiwania dostępu do elementów członkowskich typu, które są zadeklarowane jako Public. Uzyskiwanie dostępu do elementów członkowskich zadeklarowanych jako Friend lub Protected Friend powoduje błąd czasu wykonywania.

Zobacz też