Есть несколько подходов к этому, и которые вы используете, может зависеть от значений вы работаете. Однако, если вы хотите что-то, что улавливает все условия, то я бы это сделать:
If Value Is Nothing OrElse IsDbNull(value) Then
'do something
Else
'do something else
End If
Это будет проверить, если значение нет ничего, что может произойти, без стоимости фактически быть DBNull.
Но самая важная часть этого - OrElse. OrElse - это оператор короткого замыкания, который завершает оценку условия, как только среда выполнения знает, каков будет результат. Напротив, оператор Or выполнит все условия независимо от того, что является причиной, из-за которой ваш исходный код терпит неудачу.
EDIT:
Теперь, когда я смотрю на вашем примере код еще раз, я вижу, как мой NotNull() функция может помочь вам:
Public Shared Function NotNull(Of T)(ByVal Value As T, ByVal DefaultValue As T) As T
If Value Is Nothing OrElse IsDBNull(Value) Then
Return DefaultValue
Else
Return Value
End If
End Function
Использование:
if NotNull(value, something) = something then
'do something
else
'do something else
end if
Я горячо уверен, что это именно то, о чем идет речь, но ключ является частью «OrElse» наверняка. – Jimmy
Вот оно! OrElse сделал это, спасибо большое! – Iulian
Несомненно, никаких проблем. Фактически теперь, когда я снова смотрю на свой оригинальный код, я вижу, как моя функция NotNull может вам помочь. –