In VB.NET auf eine boolesche Funktion, wenn Sie eine Exit Function-Zeile ausführen, gibt es false zurück?Gibt die Exit-Funktion false zurück?
Antwort
verlassen: Das ist richtig, mit dem Vorbehalt, dass der Name der Funktion in VB kann auch eine Variable sein, der zurückgegeben wird. Wenn Sie dies zuvor auf "true" festgelegt haben, wird "true" zurückgegeben.
Mehr vollständig, in VB.Net, wenn ich eine Boolesche Funktion haben Foo()
wie so definiert:
Public Function Foo() As Boolean
'...
... der Körper dieser Funktion hat eine implizite Variable auch Foo
genannt, die übereinstimmt der Rückgabetyp der Funktion — in diesem Fall, aber Object
, wenn der Rückgabetyp weggelassen wird (Sie sollten Option Strict
verwenden, die einen Rückgabetyp erfordert). Diese implizite Variable wird initialisiert, um den Standardwert für diesen Typ zu verwenden.
Wenn Sie Return
einen Wert von der Funktion, ob über Exit Function
oder einfach durch das Erreichen des Endes fehlschlagen, wird stattdessen diese implizite Variable zurückgegeben. Daher gibt eine Funktion False
zurück, wenn Sie Exit Function
früh ohne andere Änderungen vornehmen, denn das ist der Standardwert in der impliziten Variable, die mit der Funktion verwendet wird. Sie können diese Variable aber auch zuerst auf True
setzen, wenn Sie wollten, und dann würde Exit Function
stattdessen True
zurückgeben.
Heutzutage verwenden Leute die implizite Variable nicht oft, aber es gibt Situationen, in denen es Ihnen ein paar Codezeilen sparen kann, ohne dass etwas an Klarheit verloren geht.
Möglicherweise ist dies eine Frage der Klarheit, aber das funktioniert in VB, weil diese Funktion Ausgabevariable auf false initialisiert wird und ohne explizite Rückgabe ist es diese Variable, die zurückgegeben wird – annakata
Um klar zu sein, wenn ich eine Funktion habe, die den Typ long zurückgibt, 'Exit Function' gibt den Standardwert (0) zurück. Außerdem, wenn ich in meinem 'Function Foo() as Long',' Return Foo' zurückgebe, gebe ich "0" zurück. Richtig? Ich könnte "Exit Function" durch "Return Foo" ersetzen? – MetalPhoenix
Solange Sie diese Funktion nicht auf True gesetzt haben, bevor Sie
Unabhängig davon, ob dies der Fall ist (der Compiler gibt nur eine Null-Referenz-Warnung aus), sollten Sie immer noch explizit false zurückgeben, wenn auch nur zur besseren Lesbarkeit.
Die tatsächliche Antwort auf die Frage ist immer noch nützlich, wenn Sie jedoch eine solche Funktion 'Exit Function' _aufräumen wollen. – Nyerguds
Ich mache immer "Return True" oder "Return False", um eine Methode anstelle der Exit-Anweisung zu beenden.
- 1. preferences.getKey.equals() gibt false zurück
- 2. SCDynamicStoreSetValue gibt false zurück
- 3. Immutable.Set.contains gibt false zurück
- 4. string.matches (". *") Gibt false zurück
- 5. Openssl_private_encrypt gibt FALSE zurück
- 6. json_encode() gibt false zurück
- 7. UIElement.IsMouseOver gibt false zurück
- 8. Xpath Gibt false zurück
- 9. PHP strtotime gibt false zurück
- 10. 'Enthält' Methode gibt false zurück
- 11. openssl_decrypt gibt immer false zurück
- 12. unserialize manchmal gibt false zurück
- 13. Warum gibt os.path.isfile False zurück?
- 14. Warum gibt string.contains() false zurück?
- 15. Twitter addImage gibt False zurück
- 16. MediaWiki recursiveTagParse gibt false zurück
- 17. SignedXml checksignature gibt false zurück
- 18. Warum gibt file_exists() false zurück?
- 19. PrincipalContext.ValidateCredentials gibt immer FALSE zurück
- 20. FD_ISSET gibt immer false zurück
- 21. Magento getCollection() gibt false zurück
- 22. isProviderEnabled (LocationManager.NETWORK_PROVIDER) gibt false zurück
- 23. PHP file_get_contents gibt false zurück
- 24. Python path.exists() gibt False zurück
- 25. IsPostBack gibt immer false zurück
- 26. SignedXml checksignature gibt false zurück.
- 27. jstree get_json gibt false zurück
- 28. Warum gibt is_array() false zurück?
- 29. XMLAttribute gibt immer false zurück
- 30. PHP is_writable() gibt true zurück, aber file_put_contents() gibt false zurück
Das ist, warum ich nicht mag VB :) In C# zwingt der Compiler Sie, Explicity zurückzugeben. – cjk
Eigentlich sagt der Compiler Sie als Warnung (und/oder visuell), wenn Sie nichts explizit zurückgeben, ich bin nicht ganz sicher, ob es möglich ist, es obligatorisch zu machen. –