Understanding Operator Precedence in C# Programming: Rules and Examples
☰Fullscreen
Table of Content:
The precedence of operator specifies that which operator will be evaluated first and next. The associativity specifies the operators direction to be evaluated, it may be left to right or right to left.
Let's understand the precedence by the example given below:
int 10 + 5*5;
The "data" variable will contain 35 because * (multiplicative operator) is evaluated before + (additive operator).
The precedence and associativity of C# operators is given below:
Category (By Precedence) | Operator(s) | Associativity |
---|---|---|
Unary | + - ! ~ ++ -- (type)* & sizeof | Right to Left |
Additive | + - | Left to Right |
Multiplicative | % / * | Left to Right |
Relational | < > <= >= | Left to Right |
Shift | << >> | Left to Right |
Equality | == != | Right to Left |
Logical AND | & | Left to Right |
Logical OR | | | Left to Right |
Logical XOR | ^ | Left to Right |
Conditional OR | || | Left to Right |
Conditional AND | && | Left to Right |
Null Coalescing | ?? | Left to Right |
Ternary | ?: | Right to Left |
Assignment | = *= /= %= += - = <<= >>= &= ^= |= => | Right to Left |
Example
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(); } } }
When the above code is compiled and executed, it produces the following result −
Value of (a + b) * c / d is : 90 Value of ((a + b) * c) / d is : 90