Site:  Cours VB.net  
1.30 Le code est plutôt 'compact'.

 

Comment 'compacter'?

Habituellement on écrit une instruction par ligne:

Mais:

On peut créer une variable et l'initialiser en même temps:

Au lieu de:

Dim s As String

s = "Philippe. Jean . Toto" 

On peut écrire:

Dim s As String= "Philippe. Jean . Toto" 

 

Rien n'empêche d'initialiser avec une expression complexe:

Dim t As Single =  (3* Int(u))-2)

 

Autre exemple:

Ici par exemple on découpe la string s en utilisant des séparateurs et on met les noms dans un tableau:

Version non compact:

Dim s As String= "Philippe. Jean . Toto" 

Dim sep() As Char={" "c, ","c, "."c}

Dim nom() As String 'Tableau des noms

nom = s.Split ( sep, 100, StringSplitOptions.RemoveEmptyEntries )

 

Mais on peut compacter le code:

Dim nom() As String = "Philippe. Jean . Toto".Split(New Char() {" "c, ","c, "."c, ":"c}, 100, StringSplitOptions.RemoveEmptyEntries)

On crée la variable nom, on l'initialise en même temps avec une méthode, les paramètres étant directement crées au niveau de l'appel de la méthode.

 

Même chose avec des fonctions:

Le paramètre d'une fonction peut être le résultat d'une fonction.

Soit une fonction qui se nomme 'Carré' , on peut lui envoyer un paramètre (elle accepte un Single), elle retourne le carré du paramètre:

Function Carré ( v as Single) as Single

    Return v*v

End Function

 

Soit une fonction qui se nomme 'Inverse' , on peut lui envoyer un paramètre (elle accepte un Single), elle retourne le paramètre après avoir inversé le signe:

 

Function Inverse ( v as Single) as Single

    Return -v

End Function

 

Si on veut  prendre le carré de 2 puis l'inverse et enfin la partie entière du résultat:.

Dim resultat As Single

Dim resultatintermediaire1 As Single

Dim resultatintermediaire2 As Single

resultatintermediaire1= Carré(2)        

resultatintermediaire2 = Inverse (resultatintermediaire1)

resultat= Int(resultatintermediaire2)

Ou de manière compact:

Dim resultat As Single = Int(Inverse(Carré(2)))

 

L'écriture compact du code est  plus ramassée, moins 'lourde', avec moins de variables intermédiaires

mais on perd en lisibilité parfois.

 

Dim resultat As Single = Int(Inverse(Carré(2))) 'Cet exemple est compact mais lisible.

Dim nom() As String = S.Split(New Char() {" "c, ","c, "."c, ":"c}, 100, StringSplitOptions.RemoveEmptyEntries)

'C'est moins lisible