3 votes

Pourquoi est-ce une bonne pratique de retourner à la fin d'une méthode ?

Duplicata possible :
Une fonction doit-elle avoir une seule déclaration de retour ?

Un collègue programmeur m'a demandé pourquoi nous devrions toujours retourner à la fin d'une méthode ?

On nous a appris à n'avoir qu'une seule déclaration de retour dans une méthode et non plusieurs dispersées dans le code.

Y a-t-il de bonnes raisons à cela ?

21voto

Lasse V. Karlsen Points 148037

Il y a une école de pensée qui dit que vous devriez avoir un seul point d'entrée et un seul point de sortie. Si vous en avez plus, vous devez remanier le code pour le rendre plus clair.

Je ne souscris pas à cette idée, et j'utilise fréquemment des clauses de garde, comme celle-ci :

public void DoSomethingOnMales(Person p)
{
    if (p.Sex != Sex.Male)
        return;
    ....
}

Bien sûr, vous devez toujours essayer de limiter le nombre de retours, car un trop grand nombre d'entre eux, même s'ils ne sont pas mauvais en soi, est une bonne indication que votre méthode est complexe et que vous devriez probablement essayer de la simplifier.

1voto

thomasrutter Points 42905

Vous pouvez retourner à n'importe quel moment, il n'est pas nécessaire que ce soit à la fin de la méthode. La seule chose à laquelle il faut faire attention est que vous n'ayez pas de code inaccessible : un code qui ne sera jamais atteint parce que vous retournez toujours avant qu'il ne soit atteint.

Si vous craignez de vous embrouiller et de commettre des erreurs en retournant avant la fin d'une méthode, évitez-le. Je n'hésite cependant pas à utiliser les déclarations de retour où je veux, car cela peut être utile.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X