Partager via


Liaison anticipée et liaison tardive (Visual Basic)

Le compilateur Visual Basic effectue un processus appelé binding lorsqu’un objet est affecté à une variable d’objet. Un objet est lié tôt lorsqu’il est affecté à une variable déclarée comme d’un type d’objet spécifique. Les objets liés précoces permettent au compilateur d’allouer de la mémoire et d’effectuer d’autres optimisations avant l’exécution d’une application. Par exemple, le fragment de code suivant déclare une variable de type 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)

Étant donné que FileStream est un type d’objet spécifique, l’instance affectée à FS est liée de façon anticipée.

En revanche, un objet est lié tardivement lorsqu’il est affecté à une variable déclarée comme de type Object. Les objets de ce type peuvent contenir des références à n’importe quel objet, mais ne présentent pas tous les avantages des objets à liaison anticipée. Par exemple, le fragment de code suivant déclare une variable d’objet pour contenir un objet retourné par la CreateObject fonction :

' 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

Avantages de la liaison anticipée

Vous devez utiliser des objets à liaison anticipée dans la mesure du possible, car ils permettent au compilateur d’effectuer des optimisations importantes qui produisent des applications plus efficaces. Les objets à liaison anticipée sont beaucoup plus rapides que les objets à liaison tardive et facilitent la lecture et la maintenance de votre code en indiquant exactement quel type d’objets sont utilisés. Un autre avantage pour la liaison anticipée est qu’elle permet des fonctionnalités utiles telles que la saisie semi-automatique du code et l’aide dynamique, car l’environnement de développement intégré (IDE) de Visual Studio peut déterminer exactement le type d’objet avec lequel vous travaillez lorsque vous modifiez le code. La liaison anticipée réduit le nombre et la gravité des erreurs d’exécution, car elle permet au compilateur de signaler des erreurs lorsqu’un programme est compilé.

Remarque

La liaison tardive ne peut être utilisée que pour accéder aux membres de type déclarés comme Public. L’accès aux membres déclarés comme Friend ou Protected Friend entraîne une erreur d’exécution.

Voir aussi