Priorita operátorů v jazyce Visual Basic
Několik operací dojde ve výrazu, každá část je vyhodnocen a vyřešen v předem stanovené pořadí nazývá přednost.
Prioritu pravidel
Operátory z více než jedné kategorie obsahují výrazy jsou vyhodnocovány podle následujících pravidel:
Operátory aritmetický a zřetězení mají prioritu popsané v následující části a všechny mají vyšší prioritu než relační, logické a bitové operátory.
Všechny relační operátory mají přednost a všechny mají vyšší prioritu než logické a bitové operátory, ale nižší prioritu než operátory aritmetický a zřetězení.
Logické a bitové operátory mají prioritu popsané v následující části a všechny mají nižší prioritu než aritmetický, zřetězení a relační operátory.
Operátory se stejnou prioritou jsou vyhodnocovány zleva doprava v pořadí, v jakém jsou uvedeny ve výrazu.
Pořadí přednosti
Operátory jsou vyhodnocovány v následujícím pořadí:
Vyčkání operátor
Vyčkání
Aritmetické a operátory zřetězení
Umocnění (^)
Unární identity a negace (+, –)
Násobení a dělení s pohyblivou čárkou (*, /)
Celočíselné dělení (\)
Aritmetické operace modulo (Mod)
Sčítání a odčítání (+, –)
Zřetězení řetězce (&)
Aritmetické bit shift (<<, >>)
Relační operátory
All comparison operators (=, <>, <, <=, >, >=, Is, IsNot, Like, TypeOf...Is)
Logické a bitové operátory
Negace (Not)
Conjunction (And, AndAlso)
Včetně součet (Or, OrElse)
Výhradní součet (Xor)
Komentáře
= Operátor je pouze operátor porovnání, operátor přiřazení.
Operátor zřetězení řetězce (&) není aritmetický operátor, ale prioritou je seskupen s aritmetické operátory.
Is a IsNot operátory jsou operátory porovnání referenčního objektu.Že není porovnání hodnot dvou objektů; kontrole pouze k určení, zda dvě proměnné objektu odkazují na stejnou instanci objektu.
Asociativita operátorů
Pokud operátorů stejnou přednost společně se ve výrazu, například násobení a dělení, vyhodnocuje kompilátor každé operace jako narazí zleva doprava.Následující příklad ukazuje to.
Dim n1 As Integer = 96 / 8 / 4
Dim n2 As Integer = (96 / 8) / 4
Dim n3 As Integer = 96 / (8 / 4)
První výraz vyhodnocen jako divize 96 / 8 (což způsobí 12) a pak dělení 12 / 4, což způsobí tři.Protože kompilátor vyhodnotí operací pro n1 zleva doprava hodnocení je stejný při pořadí uvedeno explicitně pro n2.I n1 a n2 mít výsledek tří.Naopak n3 má výsledek 48, protože závorky vynutit kompilátoru k vyhodnocení 8 / 4 první.
Z důvodu tohoto chování operátory jsou označeny jako vlevo asociativní v Visual Basic.
Přepsání přednost a asociativita operátorů
Můžete použít závorky vynutit některé části výraz vyhodnocen před ostatními.To můžete přepsat pořadí přednost a asociativita operátorů vlevo.Visual Basicvždy provádí operace, které jsou uzavřeny v závorkách před mimo. Však v závorkách, udržuje běžným přednost a asociativita operátorů, pokud pomocí závorek v závorce.Následující příklad ukazuje to.
Dim a, b, c, d, e, f, g As Double
a = 8.0
b = 3.0
c = 4.0
d = 2.0
e = 1.0
f = a - b + c / d * e
' The preceding line sets f to 7.0. Because of natural operator
' precedence and associativity, it is exactly equivalent to the
' following line.
f = (a - b) + ((c / d) * e)
' The following line overrides the natural operator precedence
' and left associativity.
g = (a - (b + c)) / (d * e)
' The preceding line sets g to 0.5.
Viz také
Referenční dokumentace
IsNot – operátor (Visual Basic)
Like – operátor (Visual Basic)
TypeOf – operátor (Visual Basic)
Await – operátor (Visual Basic)
Operátory uvedené podle funkce (Visual Basic)