Je rencontre parfois des méthodes où un développeur a choisi de renvoyer quelque chose qui n'est pas critique pour la fonction. Je veux dire, quand on regarde le code, ça marche apparemment aussi bien qu'un void
et après un moment de réflexion, je demande "Pourquoi?" Cela vous semble-t-il familier?
Parfois, je conviens que le plus souvent, il vaut mieux retourner quelque chose comme un bool
ou int
plutôt que de faire un void
. Je ne suis pas sûr cependant, dans l'ensemble, des avantages et des inconvénients.
Selon la situation, le renvoi d'un int
peut rendre l'appelant conscient du nombre de lignes ou d'objets affectés par la méthode (par exemple, 5 enregistrements enregistrés dans MSSQL). Si une méthode comme "InsertSomething" renvoie un booléen, je peux avoir la méthode conçue pour retourner en true
cas de succès, sinon false
. L'appelant peut choisir d'agir ou non sur ces informations.
D'autre part,
- Peut-il conduire à un objectif moins clair d'un appel de méthode? Un mauvais codage m'oblige souvent à revérifier le contenu de la méthode. S'il retourne quelque chose, il vous indique que la méthode est d'un type que vous devez faire quelque chose avec le résultat renvoyé.
- Un autre problème serait, si l'implémentation de la méthode vous est inconnue, qu'est-ce que le développeur a décidé de renvoyer qui ne soit pas critique? Bien sûr, vous pouvez le commenter.
- La valeur de retour doit être traitée, lorsque le traitement pourrait être terminé à la parenthèse fermante de la méthode.
- Que se passe-t-il sous le capot? La méthode appelée a-t-elle été récupérée à
false
cause d'une erreur levée? Ou est-elle retournée fausse en raison du résultat évalué?
Quelles sont vos expériences avec cela? Comment agiriez-vous là-dessus?
void
au moins permet au développeur de savoir que la valeur de retour de la méthode est sans conséquence; il fait une action, plutôt que de calculer une valeur.