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 variable Object. Une variable Object peut également faire référence aux données de n’importe quel type de valeur (numérique, Boolean, Char, Date, structure ou énumération).

Notes

Le type de données Object 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 lorsque vous ne savez pas, au moment de la compilation, vers quel type de données la variable peut pointer.

La valeur par défaut de Object est Nothing (référence Null).

Types de données

Vous pouvez attribuer une variable, une constante ou une expression de n’importe quel type de données à une variable Object. Pour déterminer le type de données Object auquel une variable fait actuellement référence, vous pouvez utiliser la méthode GetTypeCode de la classe System.Type. 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 type de données Object est un type référence. Toutefois, Visual Basic traite une variable Object 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 variable Object ne contient pas la valeur de données elle-même, mais plutôt un pointeur vers la valeur. Elle utilise toujours quatre octets dans la mémoire de l’ordinateur, mais cela 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 typées explicitement.

Conseils de programmation

  • Considérations sur l'interopérabilité. Si vous utilisez des composants non écrits pour le .NET Framework, tels que des objets Automation ou COM, n'oubliez pas que les types de minuteur utilisés dans les autres environnements ne sont pas compatibles avec le type Object de Visual Basic.

  • Les performances. Une variable que vous déclarez avec le type Object 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 une liaison anticipée (au moment de la compilation) et de meilleures 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 d’objet, essayez d’utiliser un type de classe spécifique, par exemple OperatingSystem, au lieu du type Object généralisé. Vous devez également utiliser la classe la plus spécifique disponible, par exemple TextBox au lieu de Control, afin que vous puissiez 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 données Object. Cela signifie que vous pouvez convertir n’importe quel type en Object sans rencontrer d’erreur System.OverflowException.

    Toutefois, si vous convertissez 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 ni de caractère de type identificateur.

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

Exemple

L’exemple suivant illustre une variable Object 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