C# is quite nit-picking when it comes to variable scoping. How is it possible that it accepts this code:
class Program { int x = 0; void foo() {
Thats normal.
In constructors I often use the same.
public Person(string name) { this.name = name; }
Else it would be not possible to declare method parameters which are named like member variables.