Раннее и позднее связывание

Обновлен: Ноябрь 2007

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

0tcf61s1.alert_note(ru-ru,VS.90).gifПримечание.

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

См. также

Основные понятия

Время существования: создание и уничтожение объектов

Ссылки

Тип данных Object

Функция CreateObject (Visual Basic)