Occasionalmente mi imbatto in metodi in cui uno sviluppatore ha scelto di restituire qualcosa che non è critico per la funzione. Voglio dire, quando guardo il codice, apparentemente funziona altrettanto bene come voide dopo un momento di riflessione, chiedo "Perché?" Questo suona familiare?
A volte concordo sul fatto che molto spesso è meglio restituire qualcosa come un boolo int, piuttosto che semplicemente fare un void. Non sono sicuro però, in generale, dei pro e dei contro.
A seconda della situazione, la restituzione di an intpuò rendere il chiamante consapevole della quantità di righe o oggetti interessati dal metodo (ad esempio, 5 record salvati in MSSQL). Se un metodo come "InsertSomething" restituisce un valore booleano, posso avere il metodo progettato per restituire in truecaso di successo, altrimenti false. Il chiamante può scegliere di agire o meno su tali informazioni.
D'altro canto,
- Può portare a uno scopo meno chiaro di una chiamata di metodo? Una codifica errata spesso mi costringe a ricontrollare il contenuto del metodo. Se restituisce qualcosa, ti dice che il metodo è di un tipo che si deve fare qualcosa con il risultato restituito.
- Un altro problema potrebbe essere, se l'implementazione del metodo non ti è nota, cosa ha deciso di restituire lo sviluppatore che non è fondamentale per la funzione? Ovviamente puoi commentarlo.
- Il valore restituito deve essere elaborato quando l'elaborazione potrebbe essere terminata nella parentesi di chiusura del metodo.
- Cosa succede sotto il cofano? Il metodo chiamato è stato ricevuto a
falsecausa di un errore generato? O è tornato falso a causa del risultato valutato?
Quali sono le tue esperienze con questo? Come agiresti su questo?
voidalmeno consente allo sviluppatore di sapere che il valore restituito dal metodo è irrilevante; fa un'azione, piuttosto che calcolare un valore.