Share via


Object comme type de données universel (Visual Basic)

Le Object, type de données est le type racine dans le .NET Framework et dans Visual Basic. Cela signifie que tous les autres types de données et types d'objets sont dérivés de lui, directement ou non. Cela signifie également que tout autre type de données, élémentaire ou composite, peut être converti vers le type Object.

Typage faible

Vous pouvez utiliser Object comme type de données universel. C'est ce qu'on appelle le typage faible. L'exemple suivant illustre la souplesse du typage faible.

Dim v As Object
v = "17"
' v contains the 2-character String value "17".
v = v - 15
' v now contains the Integer value 2.
v = "H" & v
' v now contains the 2-character String value "H2".

Si vous pouvez effectuer de telles opérations sur des variables Object sans trop vous soucier du type des données qu'elles contiennent, il y a malgré tout des pièges à éviter :

  • Si vous effectuez des opérations ou des fonctions arithmétiques sur un Object, il doit contenir des données numériques sinon une erreur d'exécution se produit.

  • Si vous concaténez des chaînes, utilisez l'opérateur & à la place de l'opérateur +. Il y a des règles complexes qui déterminent quand l'opérateur + ajoute ses opérandes et quand il les concatène. L'opérateur + doit effectuer également une vérification et une conversion de type dans certains cas, ce qui réduit les performances.

Modification du type de données d'une variable objet

Bien qu'une variable Object accepte des données de tous types, vous ne pouvez pas modifier la variable elle-même en un type de données différent. Toutefois, vous pouvez redimensionner une variable Object en un tableau de variables Object. L'exemple suivant illustre l'utilisation valide et non valide de l'ReDim, instruction (Visual Basic).

' The following statement declares a single Object.
Dim someObj As Object
' The following reallocation is valid only for Object.
ReDim someObj(8)
' The following statement attempts an INVALID change of data type.
ReDim someObj(8) As Double

La première instruction ReDim change someObj en un tableau de type Object. Cette opération n'est correcte qu'avec le type de données Object. La seconde instruction ReDim est non valide, parce qu'elle fait intervenir un autre type de données. Vous pouvez obtenir l'effet souhaité en utilisant un tableau séparé. L'exemple suivant illustre ceci.

' First allocate a separate array.
Dim someArray(8) As Double
' Then assign the new array to the Object variable.
someObj = someArray

Object comme alternative à une structure

Étant donné que le type de données Object est capable d'enregistrer beaucoup de types de données différents, vous pouvez, dans de nombreux cas, utiliser un tableau Object à la place d'une structure. Un tableau Object offre un peu plus de souplesse qu'une structure, parce que vous pouvez à tout moment modifier le type des données enregistrées dans chaque élément et lui conférer un caractère dynamique afin de pouvoir le redimensionner à votre gré. Toutefois, un tableau Object utilise davantage de mémoire que la structure équivalente et ses performances sont ralenties.

Voir aussi

Référence

Liste des types de données (Visual Basic)

Fonctions de conversion de types de données (Visual Basic)

Concepts

Programmation sans type dans Visual Basic

Déclaration implicite et explicite (Visual Basic)

Vérification du type dans Visual Basic

Utilisation efficace des types de données (Visual Basic)

Déclaration des variables objets (Visual Basic)

Assignation des variables objets (Visual Basic)

Valeurs des variables objets (Visual Basic)

Autres ressources

Conversions de type en Visual Basic