C # - Priorité des opérateurs

La priorité des opérateurs détermine le regroupement des termes dans une expression. Cela affecte l'évaluation d'une expression. Certains opérateurs ont une priorité plus élevée que d'autres; par exemple, l'opérateur de multiplication a une priorité plus élevée que l'opérateur d'addition.

Par exemple x = 7 + 3 * 2; ici, x est assigné à 13 et non à 20 parce que l'opérateur * a une priorité plus élevée que +, donc la première évaluation a lieu pour 3 * 2, puis 7 y est ajouté.

Ici, les opérateurs avec la priorité la plus élevée apparaissent en haut du tableau, ceux avec la priorité la plus basse apparaissent en bas. Dans une expression, les opérateurs de priorité supérieure sont évalués en premier.

Catégorie Opérateur Associativité
Postfix () [] ->. ++ - - De gauche à droite
Unaire + -! ~ ++ - - (type) * & sizeof De droite à gauche
Multiplicatif * /% De gauche à droite
Additif + - De gauche à droite
Décalage << >> De gauche à droite
Relationnel <<=>> = De gauche à droite
Égalité ==! = De gauche à droite
ET au niveau du bit & De gauche à droite
XOR au niveau du bit ^ De gauche à droite
OU au niveau du bit | De gauche à droite
ET logique && De gauche à droite
OU logique || De gauche à droite
Conditionnel ?: De droite à gauche
Affectation = + = - = * = / =% = >> = << = & = ^ = | = De droite à gauche
Virgule , De gauche à droite

Exemple

using System;
namespace OperatorsAppl {
   class Program {
      static void Main(string[] args) {
         int a = 20;
         int b = 10;
         int c = 15;
         int d = 5;
         int e;
         e = (a + b) * c / d;     // ( 30 * 15 ) / 5
         Console.WriteLine("Value of (a + b) * c / d is : {0}", e);

         e = ((a + b) * c) / d;   // (30 * 15 ) / 5
         Console.WriteLine("Value of ((a + b) * c) / d is  : {0}", e);

         e = (a + b) * (c / d);   // (30) * (15/5) {0}", e);

         e = a + (b * c) / d;    //  20 + (150/5) {0}", e);
         Console.ReadLine();
      }
   }
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Value of (a + b) * c / d is : 90
Value of ((a + b) * c) / d is  : 90