Compiler Error CS0844
Cannot use local variable 'name' before it is declared. The declaration of the local variable hides the field 'name'.
An identifier can have only one meaning in a given block. Local variables that have the same name as class fields can hide the field by introducing a second meaning for the identifier. Therefore the compiler generates an error when you refer to a class field in a method, and then declare a local variable by the same name.
To correct this error
Use this.num to refer to the class field.
Give the local variable a different name from the class field.
Example
The following code generates CS0844:
class Test
{
int num;
public void TestMethod()
{
num = 5; // CS0844
int num = 6; }
public static int Main()
{
return 1;
}
}