Why is this an issue?

Parameters are part of the method signature and its identity.

Implementing a method from an interface, a base class, or a partial method and changing one of its parameters' names will confuse and impact its readability.

Interface IBankAccount
    Sub AddMoney(money As Integer)
End Interface

Class BankAccount
    Implements IBankAccount

    Private Sub AddMoney(amount As Integer) ' Noncompliant: parameter's name differs from base
        ' ...
    End Sub
End Class

To avoid any ambiguity in the code, parameters' names should match the initial declaration, whether its initial declaration is from an interface, a base class, or a partial method.

Interface IBankAccount
    Sub AddMoney(money As Integer)
End Interface

Class BankAccount
    Implements IBankAccount

    Private Sub AddMoney(money As Integer) ' Compliant: parameter's name match base name
        ' ...
    End Sub
End Class

Resources

Documentation