Korai és késői kötés (Visual Basic)
A Visual Basic fordítója végrehajt egy folyamatot, amelyet akkor hív binding
meg, amikor egy objektumot hozzárendelnek egy objektumváltozóhoz. Az objektumok korai kötése akkor történik meg, ha egy adott objektumtípusúnak deklarált változóhoz van hozzárendelve. A korai kötött objektumok lehetővé teszik, hogy a fordító lefoglalja a memóriát, és más optimalizálási műveleteket hajtson végre az alkalmazás végrehajtása előtt. Az alábbi kódrészlet például egy változótípust FileStreamdeklarál:
' 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 az objektumok késve vannak kötve , ha egy típusként Object
deklarált változóhoz vannak rendelve. Az ilyen típusú objektumok bármilyen objektumra hivatkozhatnak, de nem rendelkeznek a korai kötött objektumok számos előnyével. Az alábbi kódrészlet például deklarál egy objektumváltozót, amely a CreateObject
függvény által visszaadott objektumot tartalmazza:
' 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ésű objektumok lényegesen gyorsabbak a késői 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 az Visual Studio integrált fejlesztőkörnyezet (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, hogy a fordító jelentse a hibákat egy program lefordításakor.
Megjegyzés
A késői kötés csak a deklarált Public
típustagok elérésére használható. A deklarált Friend
Protected Friend
tagok elérése futásidejű hibát eredményez.