Quando criamos uma variável do tipo Integer e atribuímos à essa variável o resultado de uma variável Booleana, há algumas diferenças: o False virá 0 e o True vira -1.
Dim boo As Boolean = True
Dim x As Integer = boo
Response.Write(x.ToString)
Response.Write(boo.ToString)
Response.Write(Convert.ToInt32(boo))
A saída será:
-1
True
1
Com essas conversões, talvez nos “embaralhamos” um pouco nas condicionais, que muitas vezes nos retornam um valor que não é o esperado.