== Why is this an issue? While it is technically correct to assign to parameters from within method bodies, doing so before the parameter value is read is likely a bug. Instead, initial values of parameters should be, if not treated as ``++readonly++`` then at least read before reassignment. === Noncompliant code example [source,vbnet] ---- Module Module1 Sub Foo(ByVal a As Integer) a = 42 ' Noncompliant End Sub End Module ---- === Compliant solution [source,vbnet] ---- Module Module1 Sub Foo(ByVal a As Integer) Dim tmp = a tmp = 42 End Sub End Module ---- === Exceptions ``++ByRef++`` parameters are ignored. [source,vbnet] ---- Module Module1 Sub Foo(ByRef a As Integer) a = 42 ' Ignored; it is a ByRef parameter End Sub End Module ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::../message.adoc[] include::../highlighting.adoc[] ''' == Comments And Links (visible only on this page) include::../comments-and-links.adoc[] endif::env-github,rspecator-view[]