34 lines
778 B
Plaintext
34 lines
778 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 <code>readonly</code> 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
|
||
|
|
||
|
<code>ByRef</code> parameters are ignored.
|
||
|
----
|
||
|
Module Module1
|
||
|
Sub Foo(ByRef a As Integer)
|
||
|
a = 42 ' Ignored; it is a ByRef parameter
|
||
|
End Sub
|
||
|
End Module
|
||
|
----
|