Gelegentlich stoße ich auf Methoden, bei denen ein Entwickler etwas zurückgibt, das für die Funktion nicht kritisch ist. Ich meine, wenn ich mir den Code ansehe, funktioniert er anscheinend genauso gut wie ein void
und nach einem Moment des Nachdenkens frage ich: "Warum?" Kommt Ihnen das bekannt vor?
Manchmal stimme ich zu, dass es am häufigsten besser ist, etwas wie a bool
oder zurückzugeben int
, als einfach a zu tun void
. Im Großen und Ganzen bin ich mir jedoch nicht sicher, was die Vor- und Nachteile angeht.
Je nach Situation kann das Zurückgeben von an int
den Aufrufer auf die Anzahl der Zeilen oder Objekte aufmerksam machen, die von der Methode betroffen sind (z. B. 5 in MSSQL gespeicherte Datensätze). Wenn eine Methode wie "InsertSomething" einen Booleschen Wert zurückgibt, kann die Methode so entworfen werden, dass sie true
bei Erfolg zurückgibt , ansonsten false
. Der Anrufer kann anhand dieser Informationen entscheiden, ob er handeln möchte oder nicht.
Auf der anderen Seite,
- Kann dies zu einem weniger eindeutigen Zweck eines Methodenaufrufs führen? Schlechte Codierung zwingt mich oft, den Methodeninhalt zu überprüfen. Wenn es etwas gibt, es sagt Ihnen , dass die Methode von einer Art ist Sie hat etwas mit dem zurückgegebenen Ergebnis zu tun.
- Ein anderes Problem wäre, wenn Ihnen die Implementierung der Methode unbekannt ist, was hat der Entwickler beschlossen, zurückzugeben, das nicht funktionskritisch ist? Natürlich können Sie es kommentieren.
- Der Rückgabewert muss verarbeitet werden, wenn die Verarbeitung in der schließenden Klammer der Methode beendet werden konnte.
- Was passiert unter der Haube? Wurde die aufgerufene Methode
false
aufgrund eines ausgelösten Fehlers abgerufen ? Oder hat es aufgrund des ausgewerteten Ergebnisses falsch zurückgegeben?
Welche Erfahrungen haben Sie damit gemacht? Wie würden Sie darauf reagieren?
void
mindestens zurückgeben, wird der Entwickler darüber informiert, dass der Rückgabewert der Methode nicht relevant ist. Es wird eine Aktion ausgeführt, anstatt einen Wert zu berechnen.