This is preliminary documentation and subject to change.
To comment on this topic, please send us email at ngwssdk@microsoft.com. Thanks!
22.7 Expressions Grammar
7.4.1 Argument lists
- argument-list:
- argument
argument-list , argument
- argument:
- expression
ref variable-reference
out variable-reference
7.5 Primary expressions
- primary-expression:
- literal
simple-name
parenthesized-expression
member-access
invocation-expression
element-access
this-access
base-access
post-increment-expression
post-decrement-expression
new-expression
typeof-expression
sizeof-expression
checked-expression
unchecked-expression
7.5.2 Simple names
- simple-name:
- identifier
7.5.3 Parenthesized expressions
- parenthesized-expression:
- ( expression )
7.5.4 Member access
- member-access:
- primary-expression . identifier
predefined-type . identifier
- predefined-type: one of
- bool byte char decimal double float int long
object sbyte short string uint ulong ushort
7.5.5 Invocation expressions
- invocation-expression:
- primary-expression ( argument-listopt )
7.5.6 Element access
- element-access:
- primary-expression [ expression-list ]
- expression-list:
- expression
expression-list , expression
7.5.7 This access
- this-access:
- this
7.5.8 Base access
- base-access:
- base . identifier
base [ expression-list ]
7.5.9 Postfix increment and decrement operators
- post-increment-expression:
- primary-expression ++
- post-decrement-expression:
- primary-expression --
7.5.10 new operator
- new-expression:
- object-creation-expression
array-creation-expression
delegate-creation-expression
7.5.10.1 Object creation expressions
- object-creation-expression:
- new type ( argument-listopt )
7.5.10.2 Array creation expressions
- array-creation-expression:
- new non-array-type [ expression-list ] rank-specifiersopt array-initializeropt
new array-type array-initializer
7.5.10.3 Delegate creation expressions
- delegate-creation-expression:
- new delegate-type ( expression )
7.5.11 typeof operator
- typeof-expression:
- typeof ( type )
7.5.12 sizeof operator
- sizeof-expression:
- sizeof ( type )
7.5.13 checked and unchecked operators
- checked-expression:
- checked ( expression )
- unchecked-expression:
- unchecked ( expression )
7.6 Unary expressions
- unary-expression:
- primary-expression
+ unary-expression
- unary-expression
! unary-expression
~ unary-expression
* unary-expression
& unary-expression
pre-increment-expression
pre-decrement-expression
cast-expression
7.6.7 Prefix increment and decrement operators
- pre-increment-expression:
- ++ unary-expression
- pre-decrement-expression:
- -- unary-expression
7.6.8 Cast expressions
- cast-expression:
- ( type ) unary-expression
7.7 Arithmetic operators
- multiplicative-expression:
- unary-expression
multiplicative-expression * unary-expression
multiplicative-expression / unary-expression
multiplicative-expression % unary-expression
- additive-expression:
- multiplicative-expression
additive-expression + multiplicative-expression
additive-expression – multiplicative-expression
7.8 Shift operators
- shift-expression:
- additive-expression
shift-expression << additive-expression
shift-expression >> additive-expression
7.9 Relational operators
- relational-expression:
- shift-expression
relational-expression < shift-expression
relational-expression > shift-expression
relational-expression <= shift-expression
relational-expression >= shift-expression
relational-expression is reference-type
- equality-expression:
- relational-expression
equality-expression == relational-expression
equality-expression != relational-expression
7.10 Logical operators
- and-expression:
- equality-expression
and-expression & equality-expression
- exclusive-or-expression:
- and-expression
exclusive-or-expression ^ and-expression
- inclusive-or-expression:
- exclusive-or-expression
inclusive-or-expression | exclusive-or-expression
7.11 Conditional logical operators
- conditional-and-expression:
- inclusive-or-expression
conditional-and-expression && inclusive-or-expression
- conditional-or-expression:
- conditional-and-expression
conditional-or-expression || conditional-and-expression
7.12 Conditional operator
- conditional-expression:
- conditional-or-expression
conditional-or-expression ? expression : expression
7.13 Assignment operators
- assignment:
- unary-expression assignment-operator expression
- assignment-operator: one of
- = += -= *= /= %= &= |= ^= <<= >>=
7.14 Expression
- expression:
- conditional-expression
assignment
7.15 Constant expressions
- constant-expression:
- expression
7.16 Boolean expressions
- boolean-expression:
- expression