C# Operator Priority
C# operator priority describes the order in which operations are performed when a computer evaluates an expression. Operations with higher priority are performed first, and then operations with lower priority are performed. For example, we often say that multiplication and division are performed first, and then addition and subtraction operations are performed.
Priority | Operator | Name or meaning | Usage form | Combination direction | Description |
---|---|---|---|---|---|
1 | [] | Array subscript | Array name[integer expression] | Left to right | |
() | Parenthesis | (Expression)/Function name(parameter list) | |||
. | Member selection (object) | Object.Member name | |||
-> | Member selection (pointer) | Object pointer->Member name | |||
2 | - | Minus operator | -Expression | Right to left | Unary operator |
(type) | Forced type conversion | (data type) expression | |||
++ | Increment operator | ++variable name/variable name++ | Unary operator | ||
-- | Decrement operator | --variable name/variable name-- | Unary operator | ||
* | Value operator | *Pointer expression | Unary operator | ||
& | Address of operator | &Lvalue expression | Unary operator | ||
! | Logical NOT Operator | !Expression | Unary Operator | ||
~ | Bitwise NOT Operator | ~Expression | Unary Operator | ||
sizeof | Length Operator | sizeofExpression/sizeof(Type) | |||
3 | / | Division | Expression/Expression | Left to Right | Binary Operators |
* | Multiplication | Expression*Expression | Binary Operators | ||
% | Remainder (Modulo) | IntegerExpression%IntegerExpression | Binary Operators | ||
4 | + | Addition | Expression+Expression | Left to Right | Binary Operators |
- | Subtraction | Expression-Expression | Binary Operator | ||
5 | << | Left Shift | Expression<<Expression | Left to Right | Binary Operator |
>> | Right Shift | Expression>>Expression | Binary Operator | ||
6 | > | Greater Than | Expression>Expression | Left to Right | Binary Operator |
>= | Greater Than or Equal To | Expression>=Expression | Binary Operator | ||
< | Less Than or Equal To | Expression<=Expression | Binary Operator | ||
rowspan="2">7 | == | Equal to | Expression==Expression | Left to Right | Binary Operator |
!= | Not Equal to | Expression!=Expression | Binary Operator | ||
8 | & | Bitwise AND | Integer Expression&Integer Expression | Left to Right | Binary Operator |
9 | ^ | Bitwise XOR | Integer Expression^Integer Expression | Left to Right | Binary Operator |
10 | | | Bitwise OR | Integer Expression|Integer Expression | Left to Right | Binary Operator |
11 | && | Logical AND | Expression&&Expression | Left to Right | Binary Operator |
12 | || | Logical OR | Expression||Expression | Left to Right | Binary Operator |
13 | ?: | Conditional Operator | Expression1?Expression2:Expression3 | Right to Left | Ternary Operator |
14 | = | Assignment Operator | Variable=Expression | Right to Left | |
/= | Division of post-assigned value | variable/=expression | |||
*= | Multiplication of post-assigned value | variable*=expression | |||
%= | Modulo post-assigned value | variable%=expression | |||
+= | Addition of post-assigned value | variable+=expression | |||
-= | Subtract postfix value | variable-=expression | |||
<<= | Left shift postfix value | variable<<=expression | |||
>>= | Right shift postfix value | variable>>=expression | |||
&= | Bitwise AND postfix value | variable&=expression | |||
^= | Bitwise OR postfix value | Variable^=expression | |||
|= | Bitwise OR postfix value | Variable|=expression | |||
15 | , | Comma operator | Expression, expression,… | Left to right | Operate from left to right |