2015-08-11 4 views
2

Я видел похожие вопросы, и поскольку мне нужно работать с VB.net для проекта, я застрял в довольно простой вещи.IsNot ничего не получается

If (myValue IsNot Nothing) And (myValue.Length > 12) Then 
    ' do some stuff 
End If 

Теперь, когда myValue Nothing, это дает мне исключение для ссылки. Я также пробовал,

If (Not myValue Is Nothing) And (myValue.Length > 12) Then 
    ' do some stuff 
End If 

В C#, который я очень использовал его очень легко, но в VB.NET Я не находя NAY путь.

+3

использовать «AndAlso» для короткого замыкания второго теста, иначе он будет оценивать его и не работает – Plutonix

+0

И в vb как & на C#. AndAlso подобен && –

ответ

6

Использовать AndAlso вместо AndOrElse вместо Or).

AndAlso выполняет короткое замыкание логическое соединение на двух выражениях. And будет оценивать оба, даже если первый уже возвращен False.

Сторона примечания: вы также должны использовать If-operator вместо старой функции VB IIf по той же причине.

+0

Спасибо за ваш ответ. Я вообще не знал об AndAlso. Мне было просто интересно, будет ли IsNot Nothing и String.IsNullOrEmpty выполнять ту же работу? KIndly просто прокомментируйте это. С уважением –

+0

Вместо явной проверки нуля вы также можете использовать String.IsNullOrEmpty. –

Смежные вопросы