AndAlso // VB.NET

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