Поделиться через


Ранняя и поздняя привязка (Visual Basic)

Компилятор 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 может точно определить тип объекта, с которым вы работаете при редактировании кода. Ранняя привязка уменьшает количество и серьезность ошибок во время выполнения, так как он позволяет компилятору сообщать об ошибках при компиляции программы.

Замечание

Поздняя привязка может использоваться только для доступа к элементам типа, объявленным как Public. Доступ к членам, объявленным как Friend или Protected Friend приводит к ошибке во время выполнения.

См. также