This rule identifies a field that hides a field in a superclass because the field has the same name and, additionally, there are no methods in the subclass that refer to the field in the superclass directly using super.field. Redefining the field in the subclass is a common mistake.

Check that the field should indeed be redefined in the subclass. If it should be redefined then consider changing its name to be more clear about what the field does.

In this example the "name" property in Employee masks the "name" property in Person. This was probably not what was intended.

  • MSDN, C# Programming Guide, Hiding through inheritance.