¿Hay una expresión VB.NET que * siempre * produce nulo?
Todos sabemos que los VBNothing
es similar, pero no equivalente, a C #null
. (Si no lo sabe, eche un vistazo aesta respuesta primero.)
Solo por curiosidad, me gustaría saber lo siguiente:
¿Existe una expresión VB.NET que siempre producenull
?
Para dar un ejemplo concreto, tome la siguiente declaración:
Dim o As Object = If(myBool, 5, ...)
¿Es posible reemplazar...
con algo, tal queo
es5
cuandomyBool
es verdad yNothing/null
cuandomyBool
¿Es falso?
Soluciones obvias que no funcionarán:
Nothing
(vea la pregunta a la respuesta vinculada arriba),DirectCast(Nothing, Object)
(arroja un error en tiempo de compilación con Option Strict On),DirectCast(Nothing, Integer?)
funciona para este ejemplo, pero no funcionaen general (si reemplaza5
con5.0
en este ejemplo, deberías modificar el reparto).Soluciones obvias (no contarán como respuestas):
Declarar unObject
variable o campo, configúrelo enNothing
y usar eso para...
,definir un método o propiedad que siempre devuelveNothing
,DirectCast
el segundo parámetro (5
) aObject
.Nota: El ejemplo anterior es solo un ejemplo. La pregunta en sí está escrita en negrita.