AndAlso och OrElse VB.NET Basic Logical Operators

If-uttrycket genererar ett "dividera med noll" -fel i VB 6 eftersom Value3 är noll. (Men se Snabbtips om dela med noll för mer om det.) Det kan vara så att de fall som leder till att Value3 är noll är mycket sällsynta och endast inträffar när du njuter av en semester tusen mil bort så att du kan ringas tillbaka för att fixa programmet i en nödsituation läge. (Hallå! Det händer!)

Efter att ha bytt till AndAlso fungerar programmet! Anledningen är att den sista delen av föreningen If-villkor - (värde 2 \ värde3) - aldrig faktiskt körs. När du använder AndAlso vet VB.NET att uttrycket inte kan lyckas när det har fastställts att den första delen av villkoret - a inte är större än Value1 - är falskt. Så VB.NET slutar utvärdera uttrycket där. Ett liknande exempel kan konstrueras med hjälp av OrElse.

Denna analys föreslår också hur du kan lägga till lite effektivitet i din kod genom att ordna ett sammansatt logiskt uttryck korrekt. Om du placerar det uttryck som troligtvis är falskt i positionen längst till vänster när du använder AndAlso, kan du förhindra att exekveringscykler används för att utvärdera det längst till höger. I ett enda test skulle det inte göra tillräckligt stor skillnad för att vara värt att ens tänka på. Men om ditt test är inne i en slinga av något slag och utförs zilljoner gånger, kan det göra en stor skillnad.

instagram viewer

instagram story viewer