Types valeur et types référence

il existe deux genres de types dans Visual Basic : les types référence et les types valeur. Les variables des types référence font référence à leurs données (objets), tandis que les variables des types valeur contiennent directement leurs données. Avec les types référence, deux variables peuvent faire référence au même objet ; par conséquent, les opérations sur une variable peuvent affecter le même objet référencé par l'autre variable. Avec les types valeur, chaque variable possède sa propre copie des données, et il n’est pas possible pour les opérations sur une variable d’affecter l’autre (sauf dans le cas du modificateur ByRef sur les paramètres).

Types valeur

Un type de données est un type valeur s’il contient les données dans sa propre allocation de mémoire. Les types valeur sont les 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, étant donné que leur type sous-jacent est toujours SByte , Short , Integer , Long , Byte , UShort , UInteger ou ULong

Chaque structure est un type valeur, même s’il contient des membres de type référence. pour cette raison, les types de valeur tels que Char et Integer sont implémentés par les structures de .NET Framework.

Vous pouvez déclarer un type valeur à l’aide du mot clé réservé, par exemple, Decimal . Vous pouvez également utiliser le New mot clé pour initialiser un type valeur. Cela s’avère particulièrement utile si le type a un constructeur qui accepte des paramètres. Par exemple Decimal(Int32, Int32, Int32, Boolean, Byte) , le constructeur, qui génère une nouvelle Decimal valeur à partir des parties fournies.

Types référence

Un type référence stocke une référence à ses données. Les types de référence incluent les éléments suivants :

  • String

  • Tous les tableaux, même si leurs éléments sont des types valeur

  • Les types de classe, tels que Form

  • Délégués

Une classe est un type référence. 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 .NET Framework sous-jacente, vous devez utiliser le mot clé New Operator quand 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 qualifiés de types, car vous ne pouvez pas en spécifier un 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 un type référence ou un type valeur à une variable du Object type de données. Une Object variable contient toujours une référence aux données, jamais les données elles-mêmes. Toutefois, si vous assignez un type valeur à une Object variable, il se comporte comme s’il contenait ses propres données. Pour plus d’informations, consultez Object Data type.

Vous pouvez déterminer si une Object variable agit comme un type référence ou un type valeur en la passant à la IsReference méthode dans la Information classe de l’espace de Microsoft.VisualBasic noms. Information.IsReference retourne True si le contenu de la Object variable représente un type référence.

Voir aussi