15. Juli 2024

Viel Lärm um Nothing, Null und Empty

Zum Verständnis der Unterschiede zwischen Null, Empty und Nothing, und diesbezüglicher Änderungen in INOSIM 14

Während Zahlen mit Null (0) und Strings mit einem leeren String („“) initialisiert werden, gibt es spezifische Schlüsselwörter, die Objekte und Variant-Variablen als nicht initialisiert beschreiben. Abhängig vom Datentyp und der verwendeten Win Wrap Basic (WWB)-Sprachvariante (WWB-COM oder WWB. NET) kann das Schlüsselwort zur Beschreibung einer nicht initialisierten oder ungültigen Variable Null, Empty oder Nothing lauten. Warum werden diese unterschiedlichen Semantiken benötigt, um das Fehlen von (gültigen) Daten zu beschreiben? Der folgende Tipp & Trick beschreibt die Eigenschaften und Besonderheiten von Null, Empty und Nothing sowie einige diesbezügliche Änderungen zwischen INOSIM 13 und 14.

Empty

Empty beschreibt ein nicht initialisierte Variable des Typs Variant. Das bedeutet, dass der Wert einer Variant-Variable vor ihrer ersten Zuweisung leer ist. Da ein Variant aus unterschiedlichen Datentypen bestehen kann, ist Empty gleichzeitig eine Null- und eine Null-Länge-Zeichenfolge.

Um zu testen, ob eine Variable Empty ist, können Sie IsEmpty(var) verwenden, was True oder False zurückgibt.

In der Sprachvariante WWB. NET existiert der Datentyp Variant nicht, daher existiert auch die Konstante Empty nicht. Weitere Unterschiede zwischen WWB-COM und WWB. NET finden Sie im Tip &Trick INOSIM 13 – WWB.NET vs. WWB-COM.

Nothing

Nothing ähnelt Empty , aber bezieht sich auf Objekte. Im Grunde bedeutet Nothing also, dass sich eine Objektreferenz nicht auf ein Objekt bezieht. Um ein Objekt auf Nothing zu überprüfen, ist es NICHT möglich, nachzufragen

If var = Nothing Then

da der Gleich-Operator die Default-Eigenschaft von Objekten überprüft und Nothing keine Default-Eigenschaft hat . So überprüfen Sie die Verwendung eines ungültigen Objekts:

If var Is Nothing Then

Null

Null unterscheidet sich etwas von den anderen beiden Schlüsselwörtern. Null gibt an, dass eine Variable keine gültigen Daten enthält. Eine Null ist mit nichts gleich, weder Null, noch ein Null-Länge-String, noch eine andere Null . Berechnungen anderer Ausdrücke mit Null geben immer eine Null zurück:

Um auf Null zu prüfen, nutzen Sie IsNull(var) in WWB-COM und IsDBNull(var)) in WWB.NET.

Empty Nothing Null
“Ich bin eine nicht-initialisierte Variant-Typ.” “Ich bin eine Objektreferenz, die auf kein Objekt referenziert.” “Ich stehe für einen unbekannten Wert.”

Unterschiede in INOSIM Version 14

In INOSIM 13 (und älter) waren Elemente in Table-Objekten, Dictionaries usw. , denen noch kein Wert zugewiesen wurde, Null in WWB-COM und DBNull in WWB. NET. Dies galt auch für Custom Attributes, da die CustomAttributes-Eigenschaft ebenfalls ein Dictionary -Objekt ist.

In INOSIM 14 sind diese nicht zugewiesenen Elemente Empty in WWB-COM oder Nothing in WWB. NET. Daher muss die Prüfung auf leere Elemente in Table-Objekten und Dictionaries (z. B. Custom Attributes) mit der IsEmpty() Funktion (WWB-COM) oder mit Is Nothing (WWB. NET) erfolgen.

Zusätzlich zu den beschriebenen Änderungen war bei Basic-Eigenschaften mit optionalem Doppelwert in INOSIM 13 (und älter) der Wert Null (DBNull), wenn er nicht zugewiesen wurde. In INOSIM 14 ist dieser Wert Nothing. Folgende Eigenschaften sind davon betroffen:

  • Volume-Eigenschaft
  • MaxVolume-Eigenschaft
  • LowVolume-Eigenschaft
  • HighVolume-Eigenschaft
  • MaxContents-Eigenschaft
  • LowContents-Eigenschaft
  • HighContents-Eigenschaft
  • Density-Eigenschaft
  • Temperature-Eigenschaft
  • ExpiryDate-Eigenschaft
  • Pressure-Eigenschaft
  • MolarMass-Eigenschaft
  • HeatCapacity-Eigenschaft
  • Color-Eigenschaft
  • ComponentProperty-Eigenschaft
  • ComponentPropertyT-Eigenschaft
  • ComponentPropertyP-Eigenschaft
  • InitialAmount-Eigenschaft
  • InitialDuration-Eigenschaft
  • InitialMassRate-Eigenschaft
  • DefaultDensity-Eigenschaft
  • ElectricalConductivity-Eigenschaft
  • pH-Eigenschaft

Download Tipp & Trick als PDF

Fragen?

Möchten Sie mehr über dieses Thema erfahren oder haben weitere Fragen? Bitte kontaktieren Sie uns.

Array ( [posts_per_page] => 3 [post_type] => [category__in] => Array ( [0] => 171 ) [orderby] => rand [order] => ASC )

Mehr Tipps & Tricks

15. November 2023

Transferanalyse mit Power BI

In diesem Tipp und Trick wird das Transfer-Analyse-Dashboard vorgestellt. Es handelt sich um eine Erweiterung des Power BI-Standard-Dashboards, mit dem Sie den Netto-Massenfluss einer Teilanlage…

Mit Hilfsfunktionen, die Sie als Basic-Macro in INOSIM importieren können, hauchen Sie Ihrem Anlagenlayout Leben ein: Durch Animationen stellen Sie Veränderungen von Füllständen, Transportbewegungen von Objekten oder…

INOSIM stellt eine Reihe vordefinierter Ergebnisse und Auswertungen zur Verfügung, entweder im Gantt-Diagramm oder als Excel-Report. Insbesondere die Excel-Reports können für weitere Auswertungen genutzt werden.…

mehr

INOSIM Kontakt

Zu den lokalen Geschäftszeiten

Deutschland +49 231 97 00 250