This article has been localized into French by the community.
Les fonctions
Une fonction permet d'encapsuler une partie de code, et de l'appeler dans d'autres parties de code. Vous tomberez certainement très vite sur des cas où vous aurez besoin de repéter un bout de code à plusieurs endroits, et c'est là que vous utiliserez les fonctions. En C#, elles sont déclarées comme ci-dessous :
<visibility> <return type> <name>(<parameters>)
{
<function code>
}
Pour appeler une fonction, on écrit simplement son nom, une parenthèse ouvrante, les paramètres s'il y en a, et on ferme la parenthèse, comme ça :
DoStuff();
Ci-dessous un exemple de votre fonction DoStuff() :
public void DoStuff()
{
Console.WriteLine("I'm doing something...");
}
La première partie, "public", est optionnelle, il s'agit de la visibilité. Si vous ne la définissez pas votre fonction sera privée. Ces notions seront vues plus en détails plus tard. Ensuite vient le type de retour. Il peut s'agir de n'importe quel type valide en C#, ou void comme on l'a définit dans cet exemple. Le void signifie que la fonction ne retourne rien. De plus cette fonction ne prends aucun paramètre, comme vous pouvez le voir avec les parenthèses vides, elle n'est pas très intéressante. Changeons ça :
public int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
return result;
}
Nous avons presque tout changé. La fonction renvoi désormais un entier (int), elle prend deux paramètres (deux entiers), et à la place d'afficher quelque chose, elle calcule une somme et renvoi le résultat. Cela signifie que l'on peut sommer deux nombres à différents endroit dans le code, et ce en appelant simplement cette fonction à la place d'écrire cette opération à chaque fois. Dans cet exemple, on ne gagne pas beaucoup de temps mais avec plus d'expérience vous allez apprendre à adorer les fonctions. La fonction est appelée comme ceci :
int result = AddNumbers(10, 5);
Console.WriteLine(result);
Comme mentionné précédemment, cette fonction retourne une valeur, et elle doit en retourner une car nous l'avons indiqué dans la déclaration. Lorsque un autre mot-clé que "vide" (void) est utilisé, cela force le programmeur à renvoyer quelque chose. Vous pouvez essayer de supprimer la ligne de retour dans l'exemple précédant et regarder la réaction du compilateur :
'AddNumbers(int, int)': not all code paths return a value Ce qui signifie que tout les chemins possible de la fonction ne retournent pas tous une valeur.
Dans cette situation, le compilateur nous rappelle que la fonction ne renvoie rien alors que nous l'avions promis. Le compilateur est intelligent! Au lieu de retirer la ligne, essayez quelque chose comme ça :
public int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
if(result > 10)
{
return result;
}
}
Vous allez voir exactement la même erreur. Pourquoi? Parce que rien ne garantit que la condition (if) sera évaluée comme vrai et la ligne de retour exécutée. On peut résoudre ce problème en ajoutant un deuxième retour par défaut à la fin :
public int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
if(result > 10)
{
return result;
}
return 0;
}
Cela résoudra ce problème, et cela vous montrera également qu'il est possible d'avoir plusieurs lignes de retour dans une seule et même fonction. Dès lors qu'une ligne de retour est atteinte, la fonction est quittée et aucune autre ligne de ce même appel ne sera exécuté. Dans notre cas, cela signifie que dès lors que le résultat est supérieur à 10, le retour par défaut (return 0) n'est jamais atteint.
This article has been deprecated!
This article has been re-organized and updated to better match the rest of the tutorial.
We suggest that you read this article instead: Methods (functions)