Object Data Type

Contient des adresses qui font référence à des objets. Vous pouvez affecter n’importe quel type de référence (chaîne, tableau, classe ou interface) à une Object variable. Une Object variable peut également faire référence aux données de n’importe quel type de valeur (numérique, Boolean, Char, Datestructure ou énumération).

Remarques

Le Object type de données peut pointer vers des données de n’importe quel type de données, y compris toute instance d’objet que votre application reconnaît. Utilisez Object quand vous ne savez pas au moment de la compilation le type de données vers lequel la variable peut pointer.

La valeur par défaut est ObjectNothing (référence Null).

Types de données

Vous pouvez affecter une variable, une constante ou une expression de n’importe quel type de données à une Object variable. Pour déterminer le type de données auquel une Object variable fait actuellement référence, vous pouvez utiliser la GetTypeCode méthode de la System.Type classe. L'exemple suivant illustre ce comportement.

Dim myObject As Object
' Suppose myObject has now had something assigned to it.
Dim datTyp As Integer
datTyp = Type.GetTypeCode(myObject.GetType())

Le Object type de données est un type référence. Toutefois, Visual Basic traite une Object variable comme un type valeur lorsqu’elle fait référence aux données d’un type valeur.

Stockage

Quel que soit le type de données auquel il fait référence, une Object variable ne contient pas la valeur de données elle-même, mais plutôt un pointeur vers la valeur. Il utilise toujours quatre octets dans la mémoire de l’ordinateur, mais il n’inclut pas le stockage des données représentant la valeur de la variable. En raison du code qui utilise le pointeur pour localiser les données, Object les variables contenant des types valeur sont légèrement plus lentes à accéder qu’aux variables explicitement typées.

Conseils de programmation

  • Considérations sur l'interopérabilité. Si vous interfaisant avec des composants non écrits pour le .NET Framework, par exemple des objets Automation ou COM, gardez à l’esprit que les types de pointeur dans d’autres environnements ne sont pas compatibles avec le type Visual BasicObject.

  • Les performances. Une variable que vous déclarez avec le Object type est suffisamment flexible pour contenir une référence à n’importe quel objet. Toutefois, lorsque vous appelez une méthode ou une propriété sur une telle variable, vous entraînez toujours une liaison tardive (au moment de l’exécution). Pour forcer la liaison anticipée (au moment de la compilation) et améliorer les performances, déclarez la variable avec un nom de classe spécifique ou convertissez-la en type de données spécifique.

    Lorsque vous déclarez une variable objet, essayez d’utiliser un type de classe spécifique, par exemple OperatingSystem, au lieu du type généralisé Object . Vous devez également utiliser la classe la plus spécifique disponible, comme TextBox au lieu de Control: vous pouvez donc accéder à ses propriétés et méthodes. Vous pouvez généralement utiliser la liste Classes dans l’Explorateur d’objets pour rechercher les noms de classes disponibles.

  • Extension. Tous les types de données et tous les types de référence s’élargissent au type de Object données. Cela signifie que vous pouvez convertir n’importe quel type Object en sans rencontrer d’erreur System.OverflowException .

    Toutefois, si vous effectuez une conversion entre les types valeur et Object, Visual Basic effectue des opérations appelées boxing et unboxing, ce qui ralentit l’exécution.

  • Caractères de type. Object n’a pas de caractère de type littéral ou de type d’identificateur.

  • Type .NET Framework. Le type correspondant dans le .NET Framework est la System.Object classe.

Exemple

L’exemple suivant illustre une Object variable pointant vers une instance d’objet.

Dim objDb As Object
Dim myCollection As New Collection()
' Suppose myCollection has now been populated.
objDb = myCollection.Item(1)

Voir aussi