AndAlso
O operador lógico AndAlso, assim como o OrElse, implementa o chamado curto circuito. Como assim? Pois bem. Pra quem está acostumado com C# pode não saber, mas no VB.NET os operadores AND e OR fazem com que toda a expressão composta com operadores lógicos seja avaliada. Ou seja, em uma expressão composta com AND, se a primeira expressão for igual a FALSE, o VB irá avaliar a segunda expressão. O que quero dizer é que, no caso de um AND, se a primeira expressão for igual a false, mesmo que a segunda seja verdadeira, aquele bloco de código condicional não será executado (lembre-se: False AND True é igual a false).
Desta forma o operador AndAlso se torna mais prático e rápido, pois no caso da primeira expressão ser falsa, não irá avaliar a segunda expressão. Isto irá otimizar seu código, ainda mais se as expressões adicionais forem uma chamada de função booleana.
Outro ganho que se tem com este tipo de operador lógico, é que você não precisará fazer IFs aninhados no caso da segunda expressão depender da primeira. Vou usar um exemplo pra explicar:
Eu tenho uma variável do tipo string, que recebe um valor qualquer. Se eu quiser saber se o caractere na quinta posição da string é igual a determinado valor, terei que, por segurança, fazer um IF perguntando se esta string possui ao menos cinco caracteres, para depois perguntar se aquele caractere é igual ao valor que estou avaliando. Se fizer uma expressão composta, conforme abaixo, será gerada uma exceção, caso a variável “palavra” não possua cinco caracteres.
If palavra.Length >= 5 And palavra(4) = "%" Then 'código End If
Então, para não gerar um erro de execução e não precisar usar IFs aninhados, faça da seguinte maneira:
If palavra.Length >= 5 AndAlso palavra(4) = "%" Then 'código
End If
Portanto, se a variável não tiver no mínimo cinco caracteres, não irá avaliar a segunda expressão. Quanto ao OrElse, ele funciona de forma similar, porém, no caso da primeira expressão ser verdadeira, não irá avaliar a segunda.
E vamu que vamuuu...
Fonte: dotdicas
0 comentários:
Postar um comentário