Gibt es einen VB.NET-Ausdruck, der * immer * null ergibt?

Wir alle wissen, dass VB'sNothing ist ähnlich, aber nicht äquivalent zu C #null. (Wenn Sie sich dessen nicht bewusst sind, schauen Sie sich andiese Antwort zuerst.)

Aus Neugier möchte ich Folgendes wissen:

Gibt es einen VB.NET-Ausdruck, der immer ergibtnull?

Um ein konkretes Beispiel zu geben, nehmen Sie die folgende Aussage:

Dim o As Object = If(myBool, 5, ...)

Ist es möglich zu ersetzen... mit etwas, so dasso ist5 wannmyBool ist wahr undNothing/null wannmyBool ist falsch?

Offensichtliche Lösungen, die nicht funktionieren:

Nothing (siehe die Frage zur verknüpften Antwort oben),DirectCast(Nothing, Object) (wirft einen Kompilierungsfehler mit Option Strict On aus),DirectCast(Nothing, Integer?) funktioniert für dieses Beispiel, funktioniert aber nichtim Allgemeinen (wenn Sie ersetzen5 mit5.0 In diesem Beispiel müssten Sie die Besetzung ändern.

Offensichtliche Problemumgehungen (gelten nicht als Antworten):

Deklarieren Sie eineObject Variable oder Feld, setzen Sie es aufNothing und benutze das für...,Definieren Sie eine Methode oder Eigenschaft, die immer zurückgegeben wirdNothing,DirectCast der zweite Parameter (5) bisObject.

Hinweis: Das obige Beispiel ist nur ein Beispiel. Die Frage selbst ist fett geschrieben.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage