== Why is this an issue? Unused parameters are misleading. Whatever the values passed to such parameters, the behavior will be the same. This rule raises an issue when a ``++private++`` procedure of a ``++Class++``, ``++Module++`` or ``++Structure++`` takes a parameter without using it. === Noncompliant code example [source,vbnet] ---- Private Sub DoSomething(ByVal a As Integer, ByVal b as Integer) ' "b" is unused Compute(a) End Sub Private Function DoSomething2(ByVal a As Integer, ByVal b As Integer) As Integer ' "a" is unused Compute(b) Return b End Function ---- === Compliant solution [source,vbnet] ---- Private Sub DoSomething(ByVal a As Integer) Compute(a) End Sub Private Function DoSomething2(ByVal b As Integer) As Integer Compute(b) Return b End Function ---- === Exceptions This rule doesn't raise any issue in the following contexts: * Procedures decorated with attributes. * Empty procedures. * Procedures which only throw ``++NotImplementedException++``. * Main methods. * ``++virtual++``, ``++override++`` procedures. * Interface implementations. * Event handlers. ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::../message.adoc[] ''' == Comments And Links (visible only on this page) include::../comments-and-links.adoc[] endif::env-github,rspecator-view[]