12.3.3.23 && expressions For an expression expr of the form expr-first && expr-second: ?The definite assignment state of v before expr-first is the same as the definite assignment state of v before expr. C# LANGUAGE SPECIFICATION 110 ?The definite assignment state of v before expr-second is definitely assigned if the state of v after expr-first is either definitely assigned or .definitely assigned after true expression.. Otherwise, it is not definitely assigned. ?The definite assignment state of v after expr is determined by: o If the state of v after expr-first is definitely assigned, then the state of v after expr is definitely assigned. o Otherwise, if the state of v after expr-second is definitely assigned, and the state of v after expr-first is .definitely assigned after false expression., then the state of v after expr is definitely assigned. o Otherwise, if the state of v after expr-second is definitely assigned or .definitely assigned after true expression., then the state of v after expr is .definitely assigned after true expression.. o Otherwise, if the state of v after expr-first is .definitely assigned after false expression., and the state of v after expr-second is .definitely assigned after false expression., then the state of v after expr is .definitely assigned after false expression.. o Otherwise, the state of v after expr is not definitely assigned. [Example: In the example class A { static void F(int x, int y) { int i; if (x >= 0 && (i = y) >= 0) { // i definitely assigned } else { // i not definitely assigned } // i not definitely assigned } } the variable i is considered definitely assigned in one of the embedded statements of an if statement but not in the other. In the if statement in method F, the variable i is definitely assigned in the first embedded statement because execution of the expression (i = y) always precedes execution of this embedded statement. In contrast, the variable i is not definitely assigned in the second embedded statement, since x >= 0 might have tested false, resulting in the variable i抯 being unassigned. end example]