Aide-mémoire Visual Basic .NET

De La Mouche VII


Dans le cadre de mes enseignements, j'ai eu à donner l'an passé des cours de VB.NET. Parce que d'autres peuvent se retrouver malgré eux dans cette situation délicate, je me résous à souiller ce wiki en y déposant les notes que j'ai prises durant les TP.

Pour développer en VB, je recommande l'IDE libre SharpDevelop, qui est très similaire à l'IDE propriétaire Microsoft (en tout cas dans sa version « Express Edition »).

Commentaires

Les commentaires sont marqués par une apostrophe, qui est l'équivalent du // en C++ :

a = 1 'Affectation de 1 à la variable a.

Variables et constantes

Types

  • Byte (1 octet)
  • Boolean : booléen, valeur True ou False (2 octets)
  • Short : entier court (2 octets)
  • Integer : entier (4 octets)
  • Long : entier long (8 octets)
  • Single : réel (simple précision, 4 octets)
  • Double : réel (double précision, 8 octets)
  • Decimal : nombre décimaux (16 octets)
  • Char : caractère, par exemple "a" (2 octets)
  • String : chaîne (taille variable, jusqu'à 2 milliards de caractères unicode)
  • Date : date (8 octets)
  • Array : tableau

Classes prédéfinies utiles

La classe Object est la classe mère de tous les objets.

Collection

Structure de liste dynamique.

Dim liste As New Collection 'Déclaration
liste.Add(objet1)           'Ajout d'un élément "objet1"
liste.Item(1)               'Accès au premier élément
liste.Remove(1)             'Suppression du premier élément
liste.Count                 'Nombre d'éléments de la collection

Portée

  • Dim : fonction ou procédure.
  • Private : classe ou module.
  • Protected : comme Private, et classes filles.
  • Public : programme.
  • Friend : projet (?).
  • Shared : attribut de classe (Public Shared maVariable As... est équivalent à Public Static en Java)

Déclaration

Pour les objets :

Dim nomObjet As New nomClasse

Pour les "types simples" (ici Integer) :

Dim nomVariable As Integer

ou :

Dim nomVariable As New Integer

Affectation

VARIABLE = VALEUR

Contantes simples

Private Const nomContante As Integer = 42

Enumérations

Déclaration :

Private Enum nomEnumeration
   nomValeur1
   nomValeur2
   [...]
   nomValeurn
End Enum

Utilisation :

nomEnumeration.nomValeur1

Tableaux

Note : le premier indice d'un tableau est 0.

Déclaration

Dim nomTableau(indiceMax) As typeTableau

Attention : il faut bien passer le dernier indice du tableau, et non sa taille ! Par exemple, la ligne suivante créera un tableau de 3 entiers (et non de deux) :

Dim tab(2) As Integer

A noter en revanche que nomTableau.Length retourne la taille du tableau (le nombre d'éléments), et non pas le plus haut indice.

On peut déclarer un tableau et l'initialiser simultanément :

Dim nomTableau() As typeTableau = {VALEUR1, VALEUR2, ..., VALEURn}

On peut déclarer un tableau sans taille et l'initialiser en bloc :

Dim nomTableau() As typeTableau
nomTableau = New typeTableau(indiceMax) {VALEUR1, VALEUR2, ..., VALEURn}

Utilisation

Accès aux valeurs :

nomTableau(indice) = VALEUR
nomVariable = nomTableau(indice)

Effacer un tableau :

Erase nomTableau

ou :

nomTableau = Nothing

Mettre tous les éléments du tableau à zéro :

Array.Clear(nomTableau, 0, nomTableau.Length)

Redimensionner un tableau :

Redim nomTableau(indiceMax) 'Le tableau est redimensionné et les valeurs sont effacées
Redim Preserve nomTableau(indiceMax) 'Le tableau est redimensionné et les valeurs conservées

Tableaux multi-dimensionnels

Les dimensions sont séparées par des virgules. Par exemple pour un tableau à deux dimensions :

Dim nomTableau(indiceMax1, indiceMax2) As typeTableau
nomTableau(0,0) = VALEUR
Dim nomTableau(,) as typeTableau = {{VALEUR1, VALEUR2}, {VALEUR3, VALEUR4}, ..., {VALEURm, VALEURn}}

Sous-programmes

Sub

Procédure (pas de retour de résultat)

Déclaration :

Sub nomSub()
Sub nomSub(nomArg1 as typeArg1)

Sortir :

Exit Sub ou Return.

Function

Fonction (retour de résultat). On les place généralement dans un fichier séparé : menu Projet -> Ajouter un module -> Module (donner un nom).

Déclaration :

Function nomFunction()
Function nomFunction(nomArg1 As typeArg1)
Function nomFunction(nomArg1 As typeArg1) As typeRetour

Sortir :

Return VALEUR

ou :

nomFunction = VALEUR
Exit Function

Portée

Private : accessible uniquement depuis le même module.

Public (par défaut) : accessible à partir des autres modules.

Appel

nomSousProgramme()

ou :

Call nomSousProgramme()

Structures conditionnelles

Les conditions

Une condition simple est de la forme :

VALEUR1 OPERATEUR VALEUR2

On peut composer une condition avec un opérateur logique, par exemple :

VALEUR1 OPERATEUR1 VALEUR2 And VALEUR3 OPERATEUR2 VALEUR4

Opérateur conditionnel (If Then Else)

If CONDITION Then
  ACTION
End If ...
If CONDITION Then
  ACTION1
Else
  ACTION2
End If ...
If CONDITION1 Then
  ACTION1
ElseIf CONDITION2 Then
  ACTION2
ElseIf CONDITION3 Then
  ACTION3
[...]
Else
  ACTIONsinon
End If ...

Opérateur conditionnel multiple (Select Case)

Select Case VALEURtest
  Case VALEUR1
    ACTION1
  Case VALEUR2
    ACTION2
  [...]
  Case Else
    ACTIONsinon
End Select

Une valeur de test peut être :

  • simple (numérique ou alphanumérique) : VALEUR1
  • une plage : VALEUR1 To VALEUR2
  • un test : Is < 42
  • multiple (où chaque valeur peut à son tour être simple, une plage ou un test) : VALEUR1, VALEUR2, ..., VALEURn

Opérateur de boucle (For)

For VARIABLE=VALEURdébut To VALEURfin
  ACTION
Next VARIABLE
For VARIABLE As TYPE = VALEURdébut To VALEURfin
  ACTION
Next VARIABLE

Pour quitter la boucle prématurément :

Exit For

Opérateur de boucle (Do Loop)

Boucler jusqu'à ce que la CONDITION soit vraie :

Do
  ACTION
Loop Until CONDITION

Boucler tant que la CONDITION est vraie :

Do
  ACTION
Loop While CONDITION

Boucle infinie :

Do
  ACTION
Loop

Quitter la boucle prématurément :

Exit Do

Opérateur de boucle (While)

While CONDITION
  ACTION
End While

Opérateur de boucle sur collection (For Each)

For Each OBJET In COLLECTION
  ACTION
Next OBJET

Exemple :

For Each i As Object In tableau
  Msgbox(i.ToString)
Next i

Opérateurs

Opérateurs de comparaison

  • égal : =
  • différent : <>
  • inférieur : <
  • supérieur : >
  • inférieur ou égal : <=
  • supérieur ou égal : >=

Note : dans une condition, le signe '=' sert de comparaison et pas d'affectation.

Opérateurs arithmétiques

  • opérations basiques : +, -, /, *
  • division entière : \
  • reste : Mod
  • puissance : ^
  • concaténation de chaînes : &

Opérateurs logiques

  • et : And
  • ou : Or
  • ou exclusif : Xor
  • négation : Not

Base de données

Sélection d'une date dans Access :

select * from Table where champ_date = #1999-03-29#

Ce qui donne en VB :

requete = "select * from Table where champ_date = #" & maDate & "#"