Existe uma expressão do VB.NET que * sempre * produz nulo?

Todos sabemos que os VB'sNothing é semelhante, mas não equivalente, aos c #null. (Se você não está ciente disso, consulteesta resposta primeiro.)

Por curiosidade, gostaria de saber o seguinte:

Existe uma expressão VB.NET que sempre produznull?

Para dar um exemplo concreto, use a seguinte declaração:

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

É possível substituir... com algo, tal queo é5 quandomyBool é verdade eNothing/null quandomyBool é falso?

Soluções óbvias que não funcionarão:

Nothing (veja a pergunta na resposta vinculada acima),DirectCast(Nothing, Object) (gera um erro em tempo de compilação com a opção Strict On),DirectCast(Nothing, Integer?) funciona para este exemplo, mas não funcionaem geral (se você substituir5 com5.0 neste exemplo, você precisa modificar o elenco).

Soluções alternativas óbvias (não contam como respostas):

Declarar umObject variável ou campo, defina-o comoNothing e use isso para...,definir um método ou propriedade que sempre retornaNothing,DirectCast o segundo parâmetro (5) paraObject.

Nota: O exemplo acima é apenas um exemplo. A pergunta em si está escrita em negrito.

questionAnswers(4)

yourAnswerToTheQuestion