return au sein des méthodes void

Nous en avons brièvement parlé lors du cours précédent : il est possible d’écrire return même dans une méthode dont le type de retour est void.

Les méthodes qui renvoient une valeur imposent l’utilisation d’une instruction return ;

Les méthodes void sans valeur de retour n’ont pas l’obligation d’écrire return :

Lorsque l’exécution parvient à l’accolade fermante } de la méthode, elle retourne automatiquement à l’appelant sans transmettre aucune donnée.

Cependant, dans la pratique métier, il est souvent nécessaire d’interrompre une méthode plus tôt. Une méthode void peut utiliser un return; sans paramètre pour sortir immédiatement :

Syntaxe : return; (aucune expression après)

Restriction : utilisable uniquement dans les méthodes déclarées void

Exemple :

    void SayHi()
    {
        Console.WriteLine("hello welcome to foxDevelop.com");
    }Langage du code : C# (cs)

Voici un exemple vu précédemment, une méthode void minimale qui ne nécessite pas de return à l’intérieur.

Lorsque nous l’appelons, elle exécute Writeline et affiche « hello welcome to foxDevelop.com »

    static void Main()
    {
        Program program = new Program();
        program.SayHi();
    }

    void SayHi()
    {

        Console.WriteLine("hello welcome to foxdevelop.com");
    }Langage du code : C# (cs)

Ajoutons maintenant return;

    void SayHi()
    {
        return; // L’instruction return utilisée seule met fin à l’exécution de la méthode
        Console.WriteLine("hello welcome to foxdevelop.com");
    }Langage du code : C# (cs)

L’exécution ne produit aucun affichage. Le return; se trouve au-dessus de Console.WriteLine ; dès que return s’exécute, le programme retourne à l’appelant et le code suivant n’est pas traité. Cela correspond à une sortie anticipée.

Tout code placé après ne sera jamais exécuté.

Ainsi, même pour une méthode void, on peut utiliser return;, sans avoir à fournir de valeur après return.

    int Add(int a, int b)
    {
        return 100;
    }Langage du code : C# (cs)

Les méthodes non void doivent utiliser return valeur;

return doit être suivi d’un résultat : une variable, une littérale (une valeur comme 100, 3.14) ou une expression telle que a+b. Il faut systématiquement produire un résultat final.

Si vous omettez le résultat et écrivez simplement return; comme dans une méthode void, vous obtiendrez une erreur.

Sorties multiples avec return dans une méthode void

    static void Main()
    {
        Program program = new Program();
        program.ShowMax(100,200);
    }

    void ShowMax(int a, int b)
    {
        if (a>b)
            Console.WriteLine($"{a}>{b}"); // Quand la condition est remplie, sortie immédiate de la méthode

        if (b > a) 
            Console.WriteLine($"{b}>{a}");
    }Langage du code : C# (cs)

Un exemple :

class Program
{
    static void Main()
    {
        Program program = new Program();
        program.Greet();
    }

    private void Greet()
    {
        DateTime dt = DateTime.Now;
        if (dt.Hour < 12)
            return; // Sortir avant midi sans affichage
        Console.WriteLine("Good afternoon!");
    }
}Langage du code : C# (cs)

Si l’heure actuelle est après douze heures, le message de l’après-midi s’affiche ; sinon, l’affichage est ignoré et la méthode retourne aussitôt.

return au sein des méthodes void

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *