Operator Precedence in C# Programming Language

Rumman Ansari   Software Engineer   2019-03-05   5615 Share
☰ Table of Contents

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