Prüft diese Anweisung in VB auf die Existenz des Objekts, oder überprüft es, ob der Inhalt null ist? Ich denke, es wird überprüft, ob der Inhalt null ist, aber ich würde es gerne überprüfen. Danke im Voraus."Wenn nicht _____ Nichts ist" und was es überprüft
Antwort
Das Konzept von "null" in VBA (im Sinne von NullReferenceException
-null, wenn Sie mit C# oder NullPointerException
in Java vertraut sind) wird mit dem Schlüsselwort Nothing
abgedeckt. Dies gilt sowohl für VB6 (und früher) als auch für VB.NET.
Dim foo As Object
Debug.Print foo.Bar ' boom, the dreaded runtime error 91 shows up
Ihre Interpretation von Nothing
ist also korrekt.
Im Gegensatz zu Java oder C#, können Sie nicht den Vergleichsoperator (==
in C#/Java, =
in VBA) verwenden, um eine Null-Check-in VBA zu machen, so dass statt (und in ähnlicher Weise wie SQL), Sie verwenden das Is
Stichwort:
If foo Is Nothing Then ' if (foo == null) { }
oder die negative Form:
If Not foo Is Nothing Then ' if (foo != null) { }
Beachten Sie, dass diese Formulierung ungültig ist, weil Nothing
nicht negiert werden kann:
If foo Is Not Nothing Then ' incorrect formulation, if (foo == !null) { }
Die Dinge werden matschig und verwirrend, wenn man bedenkt, dass VBA eine IsNull
Funktion hat .... und dann auch IsEmpty
und entsprechenden Null
, vbNull
, Empty
und vbEmpty
Werte - aber diese sind nicht in den Anwendungsbereich Ihrer Frage und sind leicht auf MSDN und Stack Overflow zu finden.
- 1. Python3 "Wenn" nicht das fängt, was es überprüft
- 2. Verketten, wenn Inline-Eval nicht nichts ist
- 3. Kontextmenü nicht anzeigen, wenn nichts ausgewählt ist
- 4. Verwirrende Botschaft Git, wenn es nichts
- 5. Was ist der Unterschied zwischen null, 0 und nichts?
- 6. was bedeutet es, wenn git svn clone für eine lange zeit läuft, abschließt und nichts erreicht
- 7. Wenn es nichts zu sein gibt $ _REQUEST
- 8. Was ist der Unterschied zwischen "Null" und "Nichts" in VB6?
- 9. Was ist Boxen und was macht es?
- 10. Was ist sre_constants.error: nichts zu wiederholen
- 11. Was ist der Unterschied zwischen Einheit und Nichts?
- 12. Was ist Thread.CurrentPrincipal und was macht es?
- 13. Was ist JSR und was nutzt es?
- 14. Was ist POI und was bedeutet es?
- 15. Was ist ein Spezialisierungsdiagramm und was nutzt es?
- 16. Wie überprüft man den Variablenwert, wenn dieser nicht definiert ist?
- 17. query_cache_min_res_unit; Was ist es und was macht es?
- 18. Ansicht ist nicht sichtbar, wenn sie nichts zu zeigen hat?
- 19. Wie überprüft man, ob Internet aktiv ist und es funktioniert?
- 20. Wie überprüft man, ob der Zellenwert nichts ist oder nicht in vb.net?
- 21. Was gibt ein leeres IQueryable zurück, wenn es leer ist?
- 22. Wie überprüfe ich, ob var existiert in der Datenbank Spalte und nichts tun, wenn es nicht
- 23. Python-Funktion, die Link überprüft und wenn es ein Download nur erlaubt, wenn es weniger als 5 MB ist
- 24. Lua - Wenn und und, was ist schneller?
- 25. Nichts tun, wenn die Tabelle nicht existiert
- 26. null/leer json wie man es überprüft und nicht ausgeben?
- 27. Django-objects.get() nichts bekommen und wie man es verhindert?
- 28. Jquery $() - was gibt es zurück, und was ist $() [0]?
- 29. Wie überprüft man, ob eine Eingabe eine Ganzzahl ist, und eine Nachricht anzeigen, wenn es nicht Python 3 ist
- 30. Was ist Microsoft.Contracts und woher kommt es?
Ich würde vorschlagen, Klammern für die Übersichtlichkeit im Allgemeinen zu verwenden: 'Wenn nicht (___ ist nichts)'. In einigen Kontexten würde dies ein Problem mit der Reihenfolge der Operationen verhindern (obwohl prolly nicht hier, ich gebe zu). Ich würde auch vorschlagen, dass Sie ein paar Zeilen Kontext angeben, damit wir wissen, welche Art von "____" ist "____". – Smandoli