Da macht man etwas Tag ein Tag aus, weil es nicht besser weis. Tausendmal findet sich in meinem Code eine doppelte Prüfung auf nothing und eine Objekteigenschaft. Man öffnet eine Ressource und es könnte nichts zurückkommen.
Noch die schönere Lösung ist dabei eine Andalso Verknüpfung die nach dem ersten falsch ausgewerteten Ausdruck abbricht.
1: Dim liste As List(Of String)
2: ...
3: If Not liste Is Nothing AndAlso liste.Count > 1 Then
In der Praxis wird man häufig tief verschachtelte IF Statements finden.
Relativ neu sind Nullable Datatypes in VB.NET. Versehen mit einem Fragezeichen lässt sich nothing direkt zuweisen
Jedenfalls lässt sich obige Zeile 3 nun mit identer Funktion aber wesentlich kürzerer Syntax im IF verwenden ohne eine Exception zu erhalten, wenn das Objekt nothing ist. Dies sind die Null Bedingungen Operatoren oder Null-Conditional
1: If liste?.Count > 1 Then
Das klappt aber nicht nur mit Eigenschaften oder Funktionen, sondern auch mit Index eines Arrays, wenn dieses kein oder zu wenig Einträge enthält.
1: Dim count as Integer? =
customers?[0]?.Orders?.Count()