Základní logické operátory AndAlso a OrElse VB.NET

click fraud protection

Výraz if generuje chybu „dělení nulou“ ve VB 6, protože hodnota 3 je nula. (Ale podívejte se na Rychlý tip na dělení nulou více informací.) Mohlo by se stát, že případy, které vyústí v nulovou hodnotu Value3, jsou velmi vzácné a vyskytují se pouze tehdy, když užíváte si dovolenou tisíce kilometrů daleko, takže můžete být zavoláni zpět, abyste program opravili v případě nouze režim. (Ahoj! Stalo se to!)

Po přechodu na AndAlso program funguje! Důvod je ten, že poslední část sloučeniny If podmínka— (hodnota 2 \ hodnota3) - se nikdy neprovede. Když používáte AndAlso, VB.NET ví, že výraz nemůže uspět, jakmile se zjistí, že první část podmínky - a není větší než hodnota1 - je nepravdivá. VB.NET tedy přestane vyhodnocovat výraz přímo tam. Podobný příklad by mohl být vytvořen pomocí OrElse.

Tato analýza také navrhuje, jak můžete do kódu přidat určitou efektivitu správným uspořádáním složeného logického výrazu. Pokud umístíte výraz, který je při použití AndAlso s největší pravděpodobností nepravdivý, můžete zabránit tomu, aby byly prováděcí cykly použity k vyhodnocení výrazu zcela vpravo. Jediným testem by to nezměnilo natolik, aby se vyplatilo uvažovat. Ale pokud je váš test uvnitř smyčky nějakého druhu a je prováděn zilliony časů, může to udělat velký rozdíl.

instagram viewer

instagram story viewer