Types valeur et types référence
En Visual Basic, les types de données sont implémentés en fonction de leur classification. Les types de données Visual Basic peuvent être classés selon qu'une variable d'un certain type stocke ses propres données ou un pointeur vers les données. Si elle enregistre ses propres données, il s'agit d'un type valeur ; si elle contient un pointeur vers les données stockées à un autre endroit de la mémoire, il s'agit d'un type référence.
Types valeur
Un type de données est un type valeur s'il contient des données dans l'espace qui lui est alloué en mémoire. Les types valeur incluent les éléments suivants :
Tous les types de données numériques
Boolean, Char et Date
Toutes les structures, même si leurs membres sont des types référence
Les énumérations, dans la mesure où leur type sous-jacent est toujours SByte, Short, Integer, Long, Byte, UShort, UInteger ou ULong.
chaque structure est un type valeur, même si elle contient des membres de type référence. Pour cette raison, les types valeur comme Char et l' Integer sont implémentés par les structures .NET Framework.
Vous pouvez déclarer un type valeur en utilisant le mot clé réservé (par exemple, Decimal). Vous pouvez également utiliser le mot clé New pour initialiser un type valeur. Cela s'avère particulièrement utile si le type possède un constructeur qui accepte des paramètres. Le constructeur #ctor(Int32, Int32, Int32, Boolean, Byte) en constitue un exemple ; il génère une nouvelle valeur Decimal à partir des parties fournies.
Types référence
Un type référence contient un pointeur vers un autre emplacement en mémoire contenant les données. Les types référence incluent les éléments suivants :
String
Tous les tableaux, même si leurs éléments sont des types valeur
Les types classe, tels que Form.
Délégués
Une classe est un type référence. C'est pour cette raison que les types référence comme Object et String sont pris en charge par les classes .NET Framework. Notez que chaque tableau est un type référence, même si ses membres sont des types valeur.
Étant donné que chaque type référence représente une classe sous-jacente.NET Framework, vous devez utiliser le mot clé de New, opérateur (Visual Basic) lorsque vous l'initialisez. L'instruction suivante initialise un tableau.
Dim totals() As Single = New Single(8) {}
Éléments qui ne sont pas des types
Les éléments de programmation suivants ne sont pas considérés comme des types car vous ne pouvez les spécifier comme type de données pour un élément déclaré :
Espaces de noms
Modules
Événements
Propriétés et procédures
Variables, constantes et champs
Utilisation du type de données Object
Vous pouvez assigner au choix un type référence ou un type valeur à une variable de type de données Object. Une variable Object contient toujours un pointeur vers les données, jamais les données elles-mêmes. Toutefois, si vous assignez un type valeur à une variable Object, elle se comporte comme si elle contenait ses propres données. Pour plus d'informations, consultez Object, type de données.
Vous pouvez déterminer si une variable d' Object fonctionne comme un type référence ou un type valeur en la passant à la méthode d' IsReference dans la classe d' Information de l'espace de noms d' Microsoft.VisualBasic . Information.IsReference retourne la valeur True si le contenu de la variable Object représente un type référence.
Voir aussi
Référence
Concepts
Types valeur Nullable (Visual Basic)
Utilisation efficace des types de données (Visual Basic)
Types de données en Visual Basic