S1226 — Method parameters and caught exceptions should not be reassigned

Language
VB.NET
Type
Bug
Severity
Minor

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


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

↑ Back to top