Table of Contents12345678910111213141516171819202122232425NotesDownloadECMA-334 C# Language Specification15 Statements15.5 Declaration statements15.5.1 Local variable declarations
Paragraph 11A local-variable-declaration declares one or more local variables.local-variable-declaration : typelocal-variable-declaratorslocal-variable-declarators : local-variable-declaratorlocal-variable-declarators,local-variable-declaratorlocal-variable-declarator : identifieridentifier=local-variable-initializerlocal-variable-initializer : expressionarray-initializer
Paragraph 21The type of a local-variable-declaration specifies the type of the variables introduced by the declaration.
Paragraph 31The type is followed by a list of local-variable-declarators, each of which introduces a new variable.2A local-variable-declarator consists of an identifier that names the variable, optionally followed by an "=" token and a local-variable-initializer that gives the initial value of the variable.
Paragraph 41The value of a local variable is obtained in an expression using a simple-name (§14.5.2), and the value of a local variable is modified using an assignment (§14.13).2A local variable must be definitely assigned (§12.3) at each location where its value is obtained.
Paragraph 51The scope of a local variable declared in a local-variable-declaration is the block in which the declaration occurs.2It is an error to refer to a local variable in a textual position that precedes the local-variable-declarator of the local variable.3Within the scope of a local variable, it is a compile-time error to declare another local variable or constant with the same name.
Paragraph 61A local variable declaration that declares multiple variables is equivalent to multiple declarations of single variables with the same type.2Furthermore, a variable initializer in a local variable declaration corresponds exactly to an assignment statement that is inserted immediately after the declaration.[Example: The example
void F() {
int x = 1, y, z = x * 2;
}
corresponds exactly to
void F() {
int x; x = 1;
int y;
int z; z = x * 2;
}