Pourquoi est-ce une bonne pratique de revenir à la fin d’une méthode

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

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

Nous avions appris à tous les deux à toujours n’avoir qu’une seule instruction return dans une méthode et non plusieurs à travers le code.

Des bonnes raisons pour cela?

Il existe une école de pensée qui dit que vous devriez avoir un seul point d’entrée et un seul sharepoint sortie. Si vous en avez plus, vous devriez reformuler le code pour le rendre plus clair.

Cependant, je ne souscris pas à cette idée et utilise fréquemment des clauses de garde, comme ceci:

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

Bien sûr, vous devriez quand même essayer de limiter le nombre de retours, car un trop grand nombre d’entre eux, bien que pas mal en soi, est une bonne indication que vous avez une méthode complexe et que vous devriez probablement essayer de la simplifier.

Vous pouvez revenir à tout moment, il n’est pas nécessaire que ce soit à la fin de la méthode. La seule chose à surveiller est que vous n’avez pas de code inaccessible: un code qui ne sera jamais atteint car vous revenez toujours avant qu’il ne soit atteint.

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