Megosztás a következőn keresztül:


Korai és késői kötés (Visual Basic)

A Visual Basic fordító egy olyan folyamatot hajt végre, amelyet akkor hívunk meg binding , amikor egy objektumot hozzárendelünk egy objektumváltozóhoz. Az objektumok korán meg vannak kötve , amikor egy adott objektumtípusnak deklarált változóhoz vannak rendelve. A korai kötött objektumok lehetővé teszik, hogy a fordító lefoglalja a memóriát, és más optimalizálásokat hajtson végre az alkalmazások végrehajtása előtt. Az alábbi kódrészlet például egy változó típusát FileStreamdeklarálja:

'  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)

Mivel FileStream egy adott objektumtípusról van szó, a hozzárendelt FS példány korai kötésű.

Ezzel szemben egy objektum késve van megkötve , amikor egy típusként Objectdeklarált változóhoz van rendelve. Az ilyen típusú objektumok bármilyen objektumra hivatkozhatnak, de nem rendelkeznek a korai kötött objektumok számos előnyével. A következő kódtöredék például deklarál egy objektumváltozót a függvény által CreateObject visszaadott objektum tárolására:

' 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

A korai kötés előnyei

Amikor csak lehetséges, korai kötésű objektumokat kell használnia, mert lehetővé teszik a fordító számára, hogy olyan fontos optimalizálásokat hozzon létre, amelyek hatékonyabb alkalmazásokat eredményeznek. A korai kötött objektumok lényegesen gyorsabbak a késő kötött objektumoknál, és a kód olvashatóbbá és karbantarthatóbbá tétele azáltal, hogy pontosan megadja, hogy milyen típusú objektumokat használnak. A korai kötés másik előnye, hogy olyan hasznos funkciókat tesz lehetővé, mint az automatikus kódkiegészítés és a dinamikus súgó, mivel a Visual Studio integrált fejlesztési környezete (IDE) pontosan meg tudja határozni, hogy milyen típusú objektummal dolgozik a kód szerkesztésekor. A korai kötés csökkenti a futásidejű hibák számát és súlyosságát, mivel lehetővé teszi a fordító számára a hibák jelentését egy program lefordításakor.

Megjegyzés:

A késői kötés csak a deklarált Publictípustagok elérésére használható. A deklarált FriendProtected Friend tagok elérése futásidejű hibát eredményez.

Lásd még