Vous êtes sur la page 1sur 10

Chapitre 6 : Les Fonctions

En C# les fonctions permettent d’avoir des blocs de codes qui peuvent être exécutés à
n’importe quel moment dans une application.

Les fonctions permettent d’avoir un code lisible, on peut l’utiliser pour regrouper des codes
liés.

Définition d’une fonction et Utilisation

Exemple : une fonction simple

Renvoi de valeurs

Pour qu’une fonction puisse renvoyer une valeur, nous devons la modifier en deux façons :

 Spécifier le type de la valeur renvoyée lors de la déclaration de la fonction en enlevant


le mot clé « void »
 Utiliser le mot clé « return » à la fin de la fonction afin de renvoyer une valeur

<returnValue> doit être soit du même type que <returnType> ou peut être implicitement convertit au
type de <returnType>
Paramètres

Quand une fonction doit contenir des paramètres, on le fait de la manière suivante :

 On définit une liste de paramètres et leurs types acceptés par la fonction dans sa définition,
 Une liste d’arguments lors de l’appel de la fonction

Syntaxe :

Exemple :
La fonction ci-dessus renvoie la valeur maximum d’un tableau. maxVal reçoit intArray[0] cad 1, cette
valeur est comparée avec chacune des valeurs du tableau, si une valeur du tableau est supérieur à
maxVal alors ce dernier prend cette valeur et ainsi de suite jusqu’à la fin de la boucle, puis la fonction
retourne maxVal.

Quand on fait appel à une fonction, on doit la fournir des arguments qui correspondent à ses
paramètres définies lors de sa définition. Ce qui signifie que ces arguments doivent avoir le même type
que les paramètres, le même nombre et le même ordre.

Paramètre de tableaux

C# nous permet de ne spécifier qu’un seul paramètre spécial (et seulement un) pour une fonction.

Ce paramètre, qui doit être le dernier lors de la définition de la fonction, est connu sous le nom de
« parameter array ».

Parameter aarays nous permet d’appeler une fonction en utilisant plusieurs paramètres, pour cela on
utilise le mot clé « params »

Exemple :
Avec le paramètre spécial « params » on peut appeler une fonction aucun, un, deux ou plusieurs
paramètres. Il n’y a pas de limite concernant le nombre d’arguments.

Référence

On utilise le mot clé « ref » pour référence à une valeur contenue dans un argument envoyé à une
fonction. On modifie ainsi son contenu afin de l’utiliser à d’autre fin.

Exemple dans le code ci-dessous myNumber garde toujours sa valeur après l’appel de la fonction.
Si nous reprenons le même exemple avec le mot clé « ref » nous avons le résultat suivant :
Portée d’une variable

Elle définit l’accessibilité de la variable dans le programme.

Par exemple le code ci-dessous ne sera pas compilé.

Dans cet exemple la variable myString est une variable locale et ne peut être interprétée par la fonction
write ( )

Pour resoudre ce problème on doit déclarer myString de la fonction write ( ) et l’afficher. Le code qui
suit démontre cela.
Variable locale :

Elle est définit au sein d’une fonction

Variable globale :

Elle définit à l’extérieur d’une fonction, en générale au début du code (plus haut).

Pour faire référence à une variable globale, on l’appelle par son nom, ou si elle porte le même nom
qu’une variable locale, on utilise le mot clé « Program »

Exemple :
STRUCT FUNCTIONS (fonctions structures)

Nous savons que les structures peuvent contenir plusieurs données, ainsi elles peuvent aussi contenir
des fonctions.

Par exemple nous avons une structure qui comprend deux strings firstname et lastname

Si nous voulons affecter des valeurs à ces deux strings, nous devons déclarer une variable de type
CustomerName.
L’utilisation d’une fonction dans notre structure simplifie le code. On peut définir une fonction Name
qui renvoie le prénom et le nom.

Dans la définition de la fonction, il n’y apas le mot clé « static », il n’est pas requis pour les fonctions
structures.

Pour faire appel à cette fonction, on utilise le code ci-dessous :

DELEGATE

C’est un type qui nous permet de stocker les références d’une fonction.

Les delegates sont déclarer comme une fonction mais sans le corps de la fonction avec le mot clé
« delegate »

Lors de la déclaration, on spécifie le type renvoyé et les différents paramètres.

Après la définition d’un delegate, on peut créer une variable qui porte le même type que le delegate, et
on peut l’initialiser.

Une fois la variable initialisée, on l’utilise pour faire référence à n’importe quelle fonction qui a le
même type de valeur de retour et paramètres.

Exemple :
class Program
{
delegate double ProcessDelegate(double param1, double param2);
static double Multiply(double param1, double param2)
{
return param1 * param2;
}
static double Divide(double param1, double param2)
{
return param1 / param2;
}
static void Main(string[] args)
{
ProcessDelegate process;
Console.WriteLine ("Entrer un nombre de type double:");
double param1 = Convert.ToDouble (Console.ReadLine());
Console.WriteLine ("Entrer un autre nombre de type double:");
double param2 = Convert.ToDouble (Console.ReadLine());
Console.WriteLine ("Enter M pour multiplier ou D pour diviser:");
string input = Console.ReadLine();
if (input == "M")
process = new ProcessDelegate(Multiply);
else
process = new ProcessDelegate(Divide);
Console.WriteLine("Result: {0}", process(param1, param2));
Console.ReadKey ();

Vous aimerez peut-être aussi