An instance method declares a parameter or a local variable whose name matches an instance field of the declaring type. To catch local variables that violate the rule, the tested assembly must be built with debugging information and the associated program database (.pdb) file must be available.
When the name of an instance field matches a parameter or a local variable name, the instance field is accessed by using the this (Me in Visual Basic) keyword when inside the method body. While maintaining code, it is easy to forget this difference and assume that the parameter/local variable refers to the instance field, leading to errors. This is true especially for lengthy method bodies.
Dim someField AsIntegerSub SomeMethodOne(someField AsInteger)
Dim someField AsIntegerEndSubEndClassEndNamespace
Although this rule does not fire on constructors, it will fire on the someField parameter declared in the Init method in the following common pattern: