<p>In VB.NET, what is the difference between <code>And</code> and <code>AndAlso</code>? Which should I use?</p>

The
```
And
```
operator evaluates both sides, where
```
AndAlso
```
evaluates the right side if and only if the left side is true.
An example:
```
```
If mystring IsNot Nothing And mystring.Contains("Foo") Then
  ' bla bla
End If
```
```
The above throws an exception if
```
mystring = Nothing
```
```
```
If mystring IsNot Nothing AndAlso mystring.Contains("Foo") Then
  ' bla bla
End If
```
```
This one does not throw an exception.
So if you come from the C# world, you should use
```
AndAlso
```
like you would use
```
&&
```
.
More info here:
http://www.panopticoncentral.net/2003/08/18/the-ballad-of-andalso-and-orelse/