Code | Résultat | Remarques |
using System; namespace Exemples { class PrioriteOperateurs { static void Main(string[] args) { Console.WriteLine(1 + 2 + 3 * 4); // affiche 15; Console.ReadKey(); } } } |
15 |
1 + 2 + 3 * 4est évalué à : ((1 + 2) + (3 * 4))parce que * a une priorité plus haute que +, et que + est un opérateur binaire qui est associatif à gauche. |
Catégorie | Opérateurs |
Primaire | x.y, f(x), a[x], x++, x--, new, typeof, checked, unchecked |
Unaire | + - !, ~, ++x, --x, x (T) |
Arithmétique - multiplication | *, /, % |
Arithmétique - addition | +, - |
Décalage | <<, >> |
Relationnel et test de type | <, >, <=, >=, is, as |
Égalité | ==, != |
Logique, par ordre de priorité | &, ^, | |
Conditionnel, par ordre de priorité | &&, ||, ?: |
Assignation | =, +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>= |
Code | Résultat | Remarques |
using System; namespace Exemples { class DepassementOperateursArithmetiques { static void Main(string[] args) { int a = 1000000; int b = 1000000; int c; try { c = checked(a * b); // vérifie une expression Console.WriteLine(c); // affiche c } catch (OverflowException e) { Console.WriteLine(e.Message); } try { checked // vérifie chaque expression dans un bloc d'instructions { c = a + b; c = c * c; } Console.WriteLine(c); // affiche c } catch (OverflowException e) { Console.WriteLine(e.Message); } Console.ReadKey(); } } } |
L'opération arithmétique a provoqué un dépassement de capacité. L'opération arithmétique a provoqué un dépassement de capacité. |
Ici, on a provoqué deux dépassements dans une expression et dans un bloc... |
Pour plus d'information :
Opérateurs (Guide de programmation C#) : http://msdn.microsoft.com/fr-fr/library/ms173145%28v=vs.80%29.aspx