Table of Contents

    Understanding Operator Precedence in C# Programming: Rules and Examples

    Understanding Operator Precedence in C# Programming: Rules and Examples

     

    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