35 lines
769 B
Plaintext
35 lines
769 B
Plaintext
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
|
|
|
|
----
|
|
Module Module1
|
|
Sub Foo(ByVal a As Integer)
|
|
a = 42 ' Noncompliant
|
|
End Sub
|
|
End Module
|
|
----
|
|
|
|
== Compliant Solution
|
|
|
|
----
|
|
Module Module1
|
|
Sub Foo(ByVal a As Integer)
|
|
Dim tmp = a
|
|
tmp = 42
|
|
End Sub
|
|
End Module
|
|
----
|
|
|
|
== Exceptions
|
|
|
|
``++ByRef++`` parameters are ignored.
|
|
|
|
----
|
|
Module Module1
|
|
Sub Foo(ByRef a As Integer)
|
|
a = 42 ' Ignored; it is a ByRef parameter
|
|
End Sub
|
|
End Module
|
|
----
|