Having a local variable with the same name as a field effectively hides a member field. Here is an example:
classPerson{string name;voidDoSomething(){string name ="...";}}
This can lead to a confusing situation as someone might assume that the name they are referring to in the DoSomething() method is the field previously defined.