Une remarque pertinente ?
Une critique impertinente ?
Un lynchage en règle ?
Une invitation sous les tropiques ?

Ecrivez-moi !

Conçu et enseigné tel qu'en lui même, avec pertes, fracas et humour de qualité supérieure            
 par Christophe Darmangeat dans le M2 PISE du Master MECI (Université Paris 7)            


 

 

 

Référence du langage

Structure du code

Cela ne devrait guère vous surprendre : en C#, le code est divisé en modules (procédures ou fonctions), dont chacun est formé d'un certain nombre de blocs, juxtaposés ou imbriqués, contenant des instructions.

Les instructions

Il n'y a rien à en dire, sinon qu'elles figurent à raison d'une par ligne, et sont executées a priori dans cet ordre. Elles se terminent par un point-virgule.

Les blocs

Ils sont encadrés par une paire d'accolades. Il convient de respecter avec beaucoup de soin l'indentation afin d'en préserver la lisibilité.

Les procédures

Elles sont signalées par l'instruction void, qui peut éventuellement être précédée du mot-clé void ou void. Une procédure public est accessible depuis n'importe quel endroit de l'application. Une procédure private, en revanche, ne peut être déclenchée que depuis un code se trouvant dans la même classe.

Remarque :

Par défaut, nos premières procédures se trouvent toutes au sein d'un bloc :

public partial class Form1 : Form

Leur titre est suivi d'une paire de parenthèses, contenant les éventuels arguments. Par exemple, une procédure appelée TraitementFinal, qui utiliserait deux arguments, un entier nb et une chaîne mot, possèdrait la syntaxe suivante :

void TraitementFinal (int nb, string mot)
{
   ...
}

Par défaut, les arguments sont passés par valeur. Pour les passer par référence, il suffira d'ajouter le mot-clé ref, par exemple :

void TraitementFinal (int nb, ref string mot)
{
   ...
}

C# autorise un autre mode de passage de paramètre, un peu spécial : out. Ce mot-clé signale que la valeur qui le suit sera utilisée uniquement en sortie ; dans ce cas, à la différence d'un paramètre signalé par ref, il ne sera pas obligatoire que l'appel de la procédure fournisse une valeur qui lui corresponde. Ainsi, si l'on reprend la procédure TraitementFinal ci-dessus, un appel du genre :

TraitementFinal(48, Truc)

...provoquera une erreur si la variable Truc n'a pas été affectée. En revanche, dans cette même situation, il n'y aurait aucun problème si le paramètre mot de la procédure avait été défini en out plutôt qu'en ref.

Les fonctions

Par rapport aux procédures, les fonctions se distinguent d'une part par le fait que l'instruction void laisse place au type du résultat de la fonction ; d'autre part, par la présence, dans le corps de la fonction, d'une instruction return. Une fonction qui renvoie la surface d'un cercle pourrait ainsi posséder la syntaxe suivante :

double SurfaceCercle(double Rayon)
{
   double surf = 3.1416 * Rayon * Rayon;
   return surf
}