Why is this an issue?

Overriding or shadowing a field or a property declared in an outer scope can strongly impact the readability, and therefore the maintainability, of a piece of code. Developers may mistakenly assume they are modifying or accessing the class field/property when, in fact, they are working with the local variable.

class Foo
{
  public int myField;
  public int MyProperty { get; set; }

  public void DoSomething()
  {
    int myField = 0;    // Noncompliant
    int MyProperty = 0; // Noncompliant
  }
}

Resources

Documentation