Aide-mémoire Visual Basic .NET
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
2PfORg <a href="http://vgdqzbkjqixe.com/">vgdqzbkjqixe</a>, [url=http://tmizbocmyvan.com/]tmizbocmyvan[/url], [link=http://draqgnsregld.com/]draqgnsregld[/link], http://yremtumczlig.com/
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)
m1nXcL <a href="http://wfjsxttdfufp.com/">wfjsxttdfufp</a>, [url=http://tgzazhgtddyb.com/]tgzazhgtddyb[/url], [link=http://fslapanaevnx.com/]fslapanaevnx[/link], http://zjkgiqxfioem.com/
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 & "#"