C# LANGUAGE SPECIFICATION
x.y f(x) a[x] x++ x-- new
typeof checked unchecked
+ - ! ~ ++x --x (T)x
* / %
Relational and type testing
< > <= >= is as
= *= /= %= += -= <<= >>= &= ^= |=
When an operand occurs between two operators with the same precedence, the associativity of the operators controls the order in which the operations are performed:
Except for the assignment operators, all binary operators are left-associative, meaning that operations are performed from left to right. For example, x + y + z is evaluated as (x + y) + z.
The assignment operators and the conditional operator (?:) are right-associative, meaning that operations are performed from right to left. For example, x = y = z is evaluated as x = (y = z).
Precedence and associativity can be controlled using parentheses. For example, x + y * z first multiplies y by z and then adds the result to x, but (x + y) * z first adds x and y and then multiplies the result by z.
7.2.2 Operator overloading
All unary and binary operators have predefined implementations that are automatically available in any expression. In addition to the predefined implementations, user-defined implementations can be introduced by including operator declarations in classes and structs (§10.9). User-defined operator implementations always take precedence over predefined operator implementations: Only when no applicable user-defined operator implementations exist will the predefined operator implementations be considered, as described in §7.2.3 and §7.2.4.
The overloadable unary operators are:
+ - ! ~ ++ -- true false
Although true and false are not used explicitly in expressions (and therefore are not included in the precedence table in §7.2.1), they are considered operators because they are invoked in several expression contexts: boolean expressions (§7.16) and expressions involving the conditional (§7.12), and conditional logical operators (§7.11).
The overloadable binary operators are:
+ - * / % & | ^ << >> == != > < >= <=
108Copyright Microsoft Corporation 1999-2003. All Rights Reserved.