Sdílet prostřednictvím


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

= – operátor (Visual Basic)

Is – operátor (Visual Basic)

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)

Koncepty

Operátory a výrazy v jazyce Visual Basic