Есть ли в VB.NET выражение, которое * всегда * возвращает ноль?
Мы все знаем, что VBNothing
похож, но не эквивалентен, в C #null
, (Если вы не знаете об этом, посмотрите наэтот ответ первый.)
Просто из любопытства я хотел бы знать следующее:
Есть ли выражение VB.NET, которое всегда даетnull
?
Чтобы привести конкретный пример, сделайте следующее утверждение:
Dim o As Object = If(myBool, 5, ...)
Можно ли заменить...
с чем-то, таким, чтоo
является5
когдаmyBool
это правда иNothing/null
когдаmyBool
это ложь?
Очевидные решения, которые не будут работать:
Nothing
(см. вопрос к связанному ответу выше),DirectCast(Nothing, Object)
(выдает ошибку времени компиляции с Option Strict On),DirectCast(Nothing, Integer?)
работает для этого примера, но не работаетв общем (если заменить5
с5.0
в этом примере вам нужно изменить приведение).Очевидные обходные пути (не считаются ответами):
ОбъявитьObject
переменная или поле, установите его вNothing
и использовать это для...
,определить метод или свойство, которое всегда возвращаетNothing
,DirectCast
второй параметр (5
) чтобыObject
.Примечание: приведенный выше пример является лишь примером. Сам вопрос написан жирным шрифтом.