Csharp/CSharp Tutorial/Operator/Operator Precedence

Материал из .Net Framework эксперт
Версия от 12:17, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

multiple arithmetic operators

class MainClass
{
  public static void Main()
  {
    
    System.Console.WriteLine("3 * 4 / 2 = " + 3 * 4 / 2);
  }
}
3 * 4 / 2 = 6

Operator precedence, with () and without ()

class MainClass
{
  public static void Main()
  {
    int myInt = 2 + 5 * 10;
    System.Console.WriteLine("2 + 5 * 10 = " + myInt);
    myInt = (2 + 5) * 10;
    System.Console.WriteLine("(2 + 5) * 10 = " + myInt);
    myInt = 2 * 20 / 5;
    System.Console.WriteLine("2 * 20 / 5 = " + myInt);
  }
}
2 + 5 * 10 = 52
(2 + 5) * 10 = 70
2 * 20 / 5 = 8

Order of Precedence for Expressions

Precedence            Operator
1                     array "[ ]", 
                      checked , 
                      function "()", 
                      member operator ".", 
                      new, 
                      postfix decrement , 
                      postfix increment, 
                      typeof, 
                      and unchecked operators
2                     unary addition "+", 
                      casting "()", 
                      one complement "~", 
                      not "!", 
                      prefix decrement, 
                      prefix increment, 
                      unary subtraction "-"operators
3                     division "/", 
                      and modulus "%", 
                      multiplication "*" operators
4                     binary addition "+" and binary subtraction "-" operators
5                     left-shift "<<" and right-shift ">>" operators
6                     as, 
                      is, 
                      less than "<", 
                      less than or equal to "<=", 
                      greater than ">", 
                      greater than or equal to ">=" operators
7                     equals "==" and not equal "!=" operators
8                     Logical And "&" operator
9                     Logical XOR "^" operator
10                    Logical Or "|" operator
11                    Conditional And "&&" operator
12                    Conditional Or "||" operator
13                    Conditional "?:" operator
14                    Assignment "=", 
                      compound "*=, /-=, %=, +=, -=, <<=, >>=, &=, ^=, and |=", 
                      and null coalescing "?" operator

The Precedence of the C# Operators

Highest                              
()  [] .    ++(postfix) --(postfix) checked new sizeof  typeof  unchecked
!   ~   (cast)  +(unary)    -(unary)    ++(prefix)      --(prefix)   
* /     %                            
+ -                                  
<<  >>                           
< > <=  >=is                         
== !=                                
&                                
^                                
|                                
&&                               
||                               
?:                               
= op=                                
Lowest