Share via


Les types de données sont des types .NET Framework

Mise à jour : novembre 2007

Chaque type de données élémentaire de Visual Basic est pris en charge par une structure ou une classe dans l'espace de noms System. Le compilateur utilise chaque mot clé de type de données comme un alias pour la structure ou la classe sous-jacente. Par exemple, déclarer une variable avec le mot réservé Byte équivaut à la déclarer avec le nom de structure qualifié complet System.Byte.

Des classes et des structures supplémentaires sont disponibles dans le .NET Framework.

Le Common Language Runtime (CLR) prend également en charge des structures et des classes qui ne sont pas disponibles dans Visual Basic. Par exemple, la structure System.Guid fournit un identificateur global unique (GUID) et la classe System.TimeZone prend en charge un fuseau horaire. Vous pouvez utiliser ces types pour déclarer des variables et des constantes et vous pouvez accéder aux méthodes que le .NET Framework implémente sur ces types. Toutefois, Visual Basic ne prend pas en charge les opérations ni les conversions de type impliquant des types qu'il ne fournit pas.

Types valeur et types référence

Dans le .NET Framework, une structure est un type valeur et une classe est un type référence. C'est pourquoi les types valeur, tels que Char et Integer sont implémentés par les structures du .NET Framework, tandis que les types référence, tels que Object et String sont pris en charge par les classes du .NET Framework. Notez que chaque tableau est un type référence, même si ses membres sont des types valeur, et que chaque structure est un type valeur, même si elle a des membres de type référence.

Étant donné que chaque type référence représente une classe du .NET Framework sous-jacente, vous devez utiliser le mot clé New (Visual Basic) lorsque vous l'initialisez. L'instruction suivante initialise un tableau.

Dim totals() As Single = New Single(8) {}

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 Decimal(Int32, Int32, Int32, Boolean, Byte) en constitue un exemple ; il génère une nouvelle valeur Decimal à partir des parties fournies.

Les types de données ont des membres

Étant pris en charge par les structures et les classes du .NET Framework, les types de données Visual Basic ont des membres. Ces membres incluent des constructeurs, des méthodes, des propriétés et des champs. Vous pouvez accéder aux membres (à l'exception des constructeurs) d'une variable comme vous accédez aux méthodes et propriétés d'un objet.

L'exemple suivant utilise les propriétés Year, Month et Day et la méthode DaysInMonth de la structure System.DateTime pour déterminer combien de jours il reste dans le mois actuel.

Dim current As Date = Now
Dim daysRemaining As Integer
daysRemaining = Date.DaysInMonth(current.Year, current.Month) - current.Day

Notez que vous devez qualifier une référence à un membre de type de données avec soit le nom du type (Date), soit le nom d'une variable déclarée comme étant de ce type (current).

Exemples de membres de types de données

Les prototypes de code suivants illustrent certains des champs, propriétés et méthodes qui peuvent être utilisés avec les types de données.

<Char>.IsDigit() ' Returns True if character is a numeric digit.

<Char>.IsLower() ' Returns True if character is a lowercase letter.

<Date>.IsLeapYear() ' Returns True if current year is a leap year.

<Date>.ToUniversalTime() ' Returns local date/time converted to UTC.

<Double>.IsInfinity() ' Returns True if contents represent infinity.

<Double>.IsNaN() ' Returns True if contents are not a number (0/0).

<Long>.MaxValue ' Constant representing largest positive Int64 value.

<Object>.GetType() ' Returns Type object representing type of <Object>.

<Object>.GetType().GetTypeCode() ' Returns type code of <Object>.

<String>.Chars(<index>) ' Character at position <index> of <String>.

<String>.Length ' Number of characters currently in <String>.

Tous les types numériques, y compris Byte et Char, exposent les champs publics MaxValue et MinValue, ce qui peut s'avérer très utile lors de l'utilisation de ces types de données.

L'équivalence des membres de types de données n'est pas assurée

Le .NET Framework fournit également plusieurs méthodes sur des types de données qui peuvent sembler équivalentes à des fonctions et des mots clés Visual Basic. Toutefois, Visual Basic n'utilise pas toujours les méthodes du .NET Framework pour accomplir la conversion ou d'autres opérations et les résultats ne sont pas toujours identiques.

Par exemple, la méthode ToSingle effectue le même type d'action que le mot clé CSng sur une expression Decimal. Mais il n'est pas garanti que CSng utilise System.dataType.ToSingle,et il n'est donc pas certain que les résultats soient identiques dans des conditions marginales ou limites.

En général, vous devez utiliser les éléments de programmation Visual Basic car ils sont plus faciles à utiliser et rendent votre code plus lisible. Dans quelques cas, une fonctionnalité supplémentaire peut être requise, et fournie par une méthode .NET Framework. Pour obtenir un exemple, consultez « L'opérateur Mod ne retourne pas de résultats exacts » dans Dépannage des types de données.

Voir aussi

Concepts

Types valeur et types référence

Structures et classes

Référence

Boolean

Byte

Char

DateTime

Decimal

Double

Guid

TimeZone