Invocation expressions and object creation expressions
For an invocation expression expr of the form: primary-expression (arg1, arg2, …, argn) or an object creation expression of the form: new type (arg1, arg2, …, argn) · For an invocation expression, the definite assignment state of v before primary-expression is the same as the state of v before expr. · For an invocation expression, the definite assignment state of v before arg1 is the same as the state of v after primary-expression. · For an object creation expression, the definite assignment state of v before arg1 is the same as the state of v before expr. · For each argument argi, the definite assignment state of v after argi is determined by the normal expression rules, ignoring any ref or out modifiers. · For each argument argi for any i greater than one, the definite assignment state of v before argi is the same as the state of v after argi-1. · If the variable v is passed as an out argument (i.e., an argument of the form “out v”) in any of the arguments, then the state of v after expr is definitely assigned. Otherwise; the state of v after expr is the same as the state of v after argn. · For array initializers (§7.6.10.4), object initializers (§7.6.10.2), collection initializers (§7.6.10.3) and anonymous object initializers (§7.6.10.6), the definite assignment state is determined by the expansion that these constructs are defined in terms of.
|