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