Visual Basic .Net:Variables

Un article de WikiTuto.

Jump to: navigation, search
  • VB .Net un langage objet
  1. Définition du langage Objet
  2. La syntaxe objet
  3. La programmation événementielle
  • L'interface de Visual Studio
  1. Structure des applications
  2. Prise en main
  • Premiers contrôles
  1. La classe Form
  2. La classe Button
  3. La classe Label
  4. La classe LinkLabel
  5. La classe Textbox
  6. La classe Richtextbox
  7. La classe Checkbox
  8. Les classes Radiobutton, GroupBox et Panel
  • Les bases du langage
  1. Les variables
  2. Les opérateurs
  3. Les tests
  4. Les boucles
  5. Les fonctions prédéfinies
    1. Fonctions de chaînes
    2. Fonctions et méthodes numériques
    3. Fonctions de conversion
    4. Fonctions d'interface
    5. Les espaces de noms
  • Les collections
  1. La notion de Collection
  2. Désigner les contrôles par leur indice
  3. La boucle For Each ... Next
  4. Tester le type d'un contrôle
  5. Créer ses propres collections par du code
  6. Créer dynamiquement des contrôles
  7. Remarque finale
  • Les contrôles listes
  1. La classe Listbox
  2. La classe Combobox
  3. La classe CheckedListBox
  4. La classe ImageList
  5. La classe Listview
  6. La classe Treeview
  • Les Événements
  1. La notion de Focus
  2. Les événements clavier
  3. Les événements Souris
  4. Glisser - Déposer
  • Autres contrôles
  1. La classe TabControl
  2. Les classes HScrollBar, VScrollBar et TrackBar
  3. La classe ProgressBar
  4. Les classes ToolTip et HelpProvider
  5. Les classes DomainUpDown et NumericUpDown
  6. Les classes DateTimePicker et MonthCalendar
  7. La classe Timer
  8. Les classes de boîtes de dialogue communes
  • Les graphismes
  1. Couleurs et Propriétés
  2. Images et Contrôles
  3. Gérer intelligemment les images
  4. méthodes graphiques
Source : Christophe Darmangeat

Sommaire

Explication

I En VB.Net, à moins d'aller trifouiller l'option adéquate, par défaut, la déclaration de toutes les variables est obligatoire. Ce qui nous conduit tout droit vers deux problèmes : celui du choix du type de la variable, et celui de sa portée (qu'on a parfois un peu tendance à oublier quand on débute).

Les types de variables

En ce qui concerne le type, voici le tableau récapitulatif des possibilités offertes par VB.Net :

Type Plage de valeurs Taille
Short-32 768 à 32 7672 octets
Integer- 2 147 483 648 à 2 147 483 6474 octets
Long9 223 372 036 854 775 808 à
-9 223 372 036 854 775 807
8 octets
Single-3,4028235E+38 à -1,401298E-45 pour les valeurs négatives
1,401298E-45 à 3,4028235E+38 pour les valeurs positives
4 octets
Double-1,79769313486231570E+308 à -4,94065645841246544E-324

pour les valeurs négatives
-4,94065645841246544E-324 à -1,79769313486231570E+308 pour les valeurs positives||8 octets

Decimal+/- 79 228 162 514 264 337 593 543 950 335 sans chiffre décimal
+/- 7,922 816 251 426 433 759 354 395 033 5 avec 28 positions à droite de la virgule
12 octets
Byte0 à 2551 octets
BooleanTrue / False2 octets
Stringde 0 à environ 230 caractères
Char1 caractère2 octets
Date01/01/1 à 31/12/99998 octets
Objectréférence à un objet4 octets
+ objet

Cela dit, nous verrons au fur et à mesure de ce cours qu'il existe en réalité une pléthore d'autres types, qui sont des déclinaisons du type objet. En fait, tout objet (donc, tout contrôle) peut être stocké dans une variable du type de cet objet (donc de ce contrôle). On y reviendra...

Portée des variables

En ce qui concerne la portée, voilà le topo : selon la "durée de vie" souhaitée pour une variable, on procèdera à la déclaration de cette variable à différents endroits du code. Il existe en théorie quatre, mais en pratique trois niveaux de portée pour les variables :

Niveau procédure

La variable est créée à chaque exécution de cette procédure, puis détruite à chaque fois que la procédure se termine. Elle ne conserve donc sa valeur qu'à l'intérieur de cette procédure, et pour une seule exécution de cette procédure. Dans ce cas, la déclaration doit être faite à l'intérieur de la procédure, par exemple juste après l'instruction Sub.

Exemple

Sub Maprocedure()
 Dim toto as Integer
End Sub

Niveau Form

La variable est créée dès que la Form est utilisée. Elle reste accessible par toutes les procédures contenues dans cette Form et conserve sa valeur tant que la Form est active en mémoire vive. Dans ce cas, il faut déclarer la variable n'importe où en-dehors d'une procédure de la Form (en pratique, mieux vaut déclarer l'ensemble de ces variables en tête de la Form : les choses étant déjà bien assez compliquées comme cela, inutile d'en rajouter en éparpillant le code un peu partout. A noter que ce qui précède vaut également pour les structures).

Exemple

Dim toto as Integer
Sub MaProcedure()
 ...
End Sub
Sub MonAutreProcedure()
 ...
End Sub

Niveau projet

la variable est accessible à toutes les procédures du projet, quel que soit la Form, la classe ou la structure dans laquelle se trouvent lesdites procédures. Pour ce faire, la déclaration doit être faite dans un module, en employant le mot-clé Public. Un module est un élément de projet, qui comme la Form sera sauvegardé dans un fichier *.vb, mais qui ne peut contenir que du code (donc, pas de contrôles, rien qui soit visible à l'écran).

Exemple

Public toto as Integer

Remarque

N'employez pas des variables de longue portée à tort et à travers. Cela gaspille des ressources ! Le principe qui doit vous guider est celui de l'économie de moyens : on ne doit déclarer les variables au niveau Form ou au niveau projet que lorsque c'est nécessaire, et pour tout dire indispensable

Tableaux

En ce qui concerne les tableaux, rien de bien sorcier. Il suffira d'ajouter dans la déclaration, au nom de la variable, les traditionnelles parenthèses.

Exemple

Dim MonTableau(15) As Integer

Remarque

Pour les indices des tableaux, la numérotation commence à zéro. Ça, on a l'habitude. Mais ce qui peut surprendre davantage, c'est que le nombre figurant entre les parenthèses indique la valeur maximale de l'indice, qui ne correspond donc pas au nombre de cases du tableau, mais à ce nombre moins un.
Ainsi, dans l'exemple ci-dessus, j'ai déclaré un tableau de 16 cases (numérotées donc de 0 à 15). Suffit de le savoir.

Pour ce qui est des tableaux dynamiques, pas de souci particulier. VB.Net gère très bien des déclarations du genre :

Dim MonTableau() As Integer

...qui sera suivie à un moment ou à un autre dans l'application par un :

Redim MonTableau(N)

Là aussi, toutefois, attention ! L'instruction Redim, employée sans plus de précision, écrabouille sauvagement toute valeur qui se trouvait précédemment dans le tableau, chose qui peut s'avérer fort gênante. Si l'on veut pratiquer un redimensionnement sans perdre les données déjà présentes dans le tableau, il suffit de ne pas oublier l'instruction Preserve :

Redim Preserve MonTableau(N)

Et voilà le travail.

Déclaration, affectation et écritures étranges

VB.Net est un langage qui permet un certain nombre d'instructions très synthétiques, qui condensent en réalité en une seule ligne plusieurs instructions distinctes. L'avantage, c'est que cela permet d'écrire très vite. L'inconvénient, c'est qu'un esprit non averti peut s'y mélanger d'autant plus facilement les crayons.
Avertissons donc.
Traditionnellement, nous avons l'habitude de dissocier la déclaration d'une variable de son affectation (je parle ici des langages civilisés, et pas des trucs de pervers comme le C). Donc, spontanément, nous dirons :

Dim Toto as Integer
...
Toto = 12

Eh bien, VB.Net nous permet d'effectuer ces deux opérations d'un seul coup d'un seul, en écrivant :

Dim Toto as Integer = 12

Ce qui revient à procéder, dans la même instruction, à la déclaration et à l'affectation de la variable.

Encore plus fort : ce que nous avons vu au chapitre précédent, à propos de la propriété Size (mais qui est vrai de toute propriété correspondant non à un type simple, mais à une structure). Normalement, pour créer une nouvelle variable structurée Taille et l'affecter à la propriété Size du contrôle Bouton, nous serions censé écrire :

Dim Taille As New Size
Taille.Width = 200
Taille.Height = 100
Bouton.Size = Taille

Car Width et Height sont les deux champs de la structure Size. Cela dit, nous savons donc que nous pouvons affecter la variable Taille au moment même où nous la déclarons, ce qui donnerait une écriture plus ramassée :

Dim Taille As New Size(200, 100)
Bouton.Size = Taille

Mais là où c'est encore plus fort, c'est que nous pouvons encore raccourcir l'écriture, en affectant la propriété dans le même élan que nous déclarons et affectons la variable Taille (qui du coup, n'a plus besoin d'exister en tant que variable nommée). C'est ce qui donne l'écriture étrange vue au chapitre précédent :

Bouton.Size = New Size(200, 100)

Et voilà le travail. Cela dit, reculer devant ces écritures pour s'en tenir au découpage traditionnel ne doit certainement pas être considéré comme une faute, ni même comme une maladresse.

Voir aussi


Source : Christophe Darmangeat

Boîte à outils
Annuaire gratuitCe site est listé dans la catégorie Informatique : Aide et astuces en informatique Annuaire