The name of a method should communicate what it does, and the names of its parameters should indicate how they’re used. If a method and its
parameter have the same name it is an indication that one of these rules of thumb has been broken, if not both. Even if by some trick of language
that’s not the case, it is still likely to confuse callers and maintainers.
Noncompliant code example
public void Login(string login) // Noncompliant
{
//...
}
Compliant solution
public void Login(string userName)
{
//...
}