Jeder kann auf die Vor- und Nachteile des Parameters out hinweisen. Wenn es bevorzugt ist, out-Parameter zu verwenden, statt nur einen Wert zurückzugeben.Was sind die Vor- und Nachteile der Verwendung von Parameter
Antwort
Ich würde vorschlagen, einen Blick auf die TryParse Methoden auf die eingebauten Typen wie Int. Der Rückgabewert ist ein Bool, um den Erfolg anzuzeigen, während der Wert über einen out-Parameter zurückgegeben wird. Dieses Konstrukt macht es nützlich, diese Methode in einem Schleifenkonstrukt aufzurufen, wo ein anderer Rückgabetyp es etwas komplizierter machen würde.
Bei weiterem Nachdenken könnte eine Konsequenz eine Tendenz sein, einfach nur Parameter zu einer Methode hinzuzufügen, anstatt die Logik richtig einzukapseln.
Wie Sie gesagt haben, ohne out-Parameter, können Sie nur einen Wert zurückgeben kann, aus Schlüsselwort erlauben Sie „Rückkehr“ mehr als einen Wert
In C# Sie nicht mehrere Variablen zurückkehren können, so dass Sie den Job tun könnte Verwenden Sie den out-Parameter, wenn Sie nicht durch eine Klasse gehen möchten (geben Sie eine Klasse mit diesen mehreren Variablen zurück).
Mit Out-Parametern können Sie effektiv mehrere Werte aus einer Methode zurückgeben, und dies ist im Allgemeinen vorzuziehen, wenn Sie eine beliebige Struktur oder ein Tupel mit mehreren Werten zurückgeben.
Man könnte argumentieren, dass es leichter ist, die möglichen Nebenwirkungen einer Funktion zu übersehen, die einen out-Parameter verwendet, da sie vom traditionellen Modell mit mehreren Parametern und einem Rückgabewert abweicht. Aber ich bin ehrlich der Meinung, dass das out-Schlüsselwort in Verbindung mit einer Methode post-condition die Absicht des Programmierers deutlich macht.
Ich bin mir nicht sicher, ob ich der Ansicht zustimme, dass es im Allgemeinen vorzuziehen ist, "out" -Werte anstelle von Rückgabeobjekten zu haben, aber vielleicht liegt es daran, dass ich willkürlich nicht beliebig interpretiere. Für mich bietet eine Sammlung von Rückgabewerten (Eigenschaften in einem einzelnen Rückgabeobjekt) im Allgemeinen mehr Flexibilität als eine Liste von Variablen, die deklariert und gepflegt werden müssen, aber ich stimme zu, dass es in beiden Situationen gute Fälle gibt. Sie scheinen einen perfekten Sinn in TryParse-Typ-Methoden zu machen, wo, ich stimme zu, eine "spezielle" Struktur von + bool (Erfolg?) Scheint Overkill. – Steven
- 1. Was sind die Vor- und Nachteile der Verwendung von Global.asax?
- 2. Was sind die Vor- und Nachteile der Verwendung von SQLDataReader?
- 3. Was sind die Vor- und Nachteile der Verwendung von OpenID?
- 4. Was sind Vor- und Nachteile der Verwendung von Git-Svn?
- 5. Was sind die Vor-/Nachteile von py2exe
- 6. Was sind die Vor- und Nachteile von Perl für OOP?
- 7. Was sind die Vor- und Nachteile von asset_packager und Jammit?
- 8. Was sind die Vor- und Nachteile der Verwendung von separaten Benutzermodellen für normale Benutzer und Administratoren?
- 9. Was sind die Vor- und Nachteile der Intensivstation?
- 10. Was sind die Vor- und Nachteile der Mehrfachvererbung?
- 11. Was sind die Vor- und Nachteile der Verwendung der zwei verschiedenen Programmierstile von CGI.pm mit Perl?
- 12. Was sind die Vor- und Nachteile von Design/Code-Reviews?
- 13. Was sind die Vor- und Nachteile von mongoid des has_and_belongs_to_many mit der Verwendung von inverse_of
- 14. Vor- und Nachteile der Verwendung von ReactJS
- 15. Was sind die Vor- und Nachteile von Seam over Spring?
- 16. Was sind die Vor- und Nachteile der Verwendung von configChanges = "orientation" für Android-Geräte?
- 17. Was sind die Vor- und Nachteile der Verwendung von Protocol vs Vererbung?
- 18. Was sind die Vor- und Nachteile der Verwendung von XML-Schemas?
- 19. Was sind die Vor- und Nachteile der Verwendung von "xpath" in Selen?
- 20. Microsoft fragt: Einzeln Liste oder Doppelliste? Was sind die Vor- und Nachteile der Verwendung von jedem?
- 21. Was sind Vor- und Nachteile der Verwendung von Socket für IPC zwischen Java und C++?
- 22. Was sind die Vor- und Nachteile des Eigenschaftsmusters?
- 23. Was sind die Vor- und Nachteile einer 100% HTTPS-Site?
- 24. newid() vs newsequentialid() Was sind die Unterschiede/Vor- und Nachteile?
- 25. Was sind die Vor- und Nachteile dieser verschiedenen Funktionsdefinitionen?
- 26. Was sind die Vor- und Nachteile von Canvas vs. DOM bei der Entwicklung von JavaScript-Spielen?
- 27. Was sind die Vor-/Nachteile von 64-Bit-.NET?
- 28. Was sind die Vor- und Nachteile für die Verwendung eines IOC-Containers?
- 29. Was sind die Vor-/Nachteile der Verwendung von SRVANY im Vergleich zum Erstellen eines Windows-Dienstes?
- 30. Was sind die Vorteile/Nachteile der Verwendung eines CTE?
wollen wissen, warum die boolesche Rückkehr in der Schleife gut ist? Kannst du ein Beispiel geben? – user496949
@ user496949 - Mit den TryParse-Methoden können Sie einen Fehler beim Parsen ziemlich einfach behandeln, indem Sie sich die Rückgabe der Methode ansehen. Das verhindert, dass Sie versuchen, entweder die Parsing-Exception zu behandeln oder nach etwas zu suchen, das anzeigt, dass der resultierende Wert irgendwie ungültig ist. Betrachten Sie einen Booleschen als wahrscheinlich das einfachste Beispiel. Wie würde man außer einer Ausnahme wissen, dass ein resultierender Wert "ungültig" war? Mit tryParse gibt die Methode selbst den Erfolg an, und der resultierende Wert wurde entweder korrekt zu einem neuen Wert analysiert oder bleibt so wie er vor dem Aufruf der Methode war. – Steven
Ich denke, Sie haben den größten Nachteil. Von dem, was ich sagen kann, jeder out param. erfordert die Pflege einer anderen Variablen durch das Objekt, das die Methode aufruft. Es ist nicht "eine große Sache", ein paar zusätzliche Variablen auf dem Weg zu delcare, aber es hat ein großes Potenzial, unnötig schwerfällig zu werden, wenn die Methode genauso einfach (und wahrscheinlich besser) alle diese Informationen in kapseln kann sein zurückgegebener Wert. – Steven