當物件指派給物件變數時,Visual Basic 編譯程式會執行呼叫 binding
的程式。 當物件指派給宣告為特定物件類型的變數時,物件會 提早系結 。 早期綁定物件可讓編譯程式在應用程式執行之前配置記憶體並執行其他優化。 例如,下列代碼段會將變數宣告為 類型 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)
因為 FileStream 是特定的物件類型,因此指派給 FS
的實例是早期系結。
相反地,當物件被指派給宣告為某類型的變數時,該物件會被延遲Object
。 此類型的物件可以保存任何對象的參考,但缺乏早期綁定對象的許多優點。 例如,下列代碼段會宣告物件變數來保存函式所傳 CreateObject
回的物件:
' 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
早期系結的優點
您應該盡可能使用早期綁定對象,因為它們可讓編譯程式進行重要的優化,以產生更有效率的應用程式。 早期綁定對象明顯比晚期綁定物件更快,而且藉由確切說明正在使用的物件類型,讓您的程式代碼更容易閱讀和維護。 早期系結的另一個優點是,它啟用實用的功能,例如自動程式代碼完成和動態說明,因為Visual Studio整合開發環境 (IDE) 可以確切判斷您在編輯程式代碼時所使用的物件類型。 早期系結可減少運行時錯誤的數目和嚴重性,因為它可讓編譯程式在編譯程式時報告錯誤。
備註
延遲綁定只能用來訪問宣告為 Public
的類型成員。 存取宣告為 Friend
或 Protected Friend
的成員會導致運行時錯誤。