Type de données défini par l'utilisateur

Contient les données dans un format que vous définissez. L’instruction Structure définit le format.

Les versions précédentes de Visual Basic prennent en charge le type défini par l’utilisateur (UDT). La version actuelle étend l’UDT à une structure. Une structure est une concaténation d’un ou plusieurs membres de différents types de données. Visual Basic traite une structure comme une seule unité, bien que vous puissiez également accéder à ses membres individuellement.

Notes

Définissez et utilisez un type de données de structure lorsque vous devez combiner différents types de données en une seule unité, ou quand aucun des types de données élémentaires ne répond à vos besoins.

La valeur par défaut d’un type de données de structure se compose de la combinaison des valeurs par défaut de chacun de ses membres.

Format de déclaration

Une déclaration de structure commence par l’instruction Structure et se termine par l’instruction End Structure. L’instruction Structure fournit le nom de la structure, qui est également l’identificateur du type de données que la structure définit. D’autres parties du code peuvent utiliser cet identificateur pour déclarer les variables, les paramètres et les valeurs de retour de fonction comme étant du type de données de cette structure.

Les déclarations entre les instructions Structure et End Structure définissent les membres de la structure.

Niveaux d’accès aux membres

Vous devez déclarer chaque membre à l’aide d’une instruction Dim ou d’une instruction qui spécifie le niveau d’accès, par exemple Public, Friend ou Private. Si vous utilisez une instruction Dim, le niveau d’accès par défaut est public.

Conseils de programmation

  • Consommation de mémoire. Comme pour tous les types de données composites, vous ne pouvez pas calculer de façon fiable la consommation totale de mémoire d’une structure en additionnant les allocations de stockage nominales de ses membres. En outre, vous ne pouvez pas supposer de façon sûre que l’ordre de stockage en mémoire est le même que votre ordre de déclaration. Si vous avez besoin de contrôler la disposition de stockage d’une structure, vous pouvez appliquer l’attribut StructLayoutAttribute à l’instruction Structure.

  • 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 définis par l’utilisateur utilisés dans les autres environnements ne sont pas compatibles avec les types de structure Visual Basic.

  • Extension. Il n’existe aucune conversion automatique vers ou depuis n’importe quel type de données de structure. Vous pouvez définir des opérateurs de conversion sur votre structure à l’aide de l’instruction Operator, et vous pouvez déclarer chaque opérateur de conversion comme étant Widening ou Narrowing.

  • Caractères de type. Les types de données de structure n’ont pas de caractère de type littéral ou de type identificateur.

  • Type .NET Framework. Il n’existe aucun type correspondant dans .NET Framework. Toutes les structures héritent de la classe .NET Framework System.ValueType, mais aucune structure individuelle ne correspond à System.ValueType.

Exemple

Le paradigme suivant montre le contour de la déclaration d’une structure.

[Public | Protected | Friend | Protected Friend | Private] Structure structname
    {Dim | Public | Friend | Private} member1 As datatype1
    ' ...
    {Dim | Public | Friend | Private} memberN As datatypeN
End Structure

Voir aussi