S4201 — Null checks should not be combined with "TypeOf Is" operator checks

Language
VB.NET
Type
Code smell
Severity
Minor
Tags
redundant

Why is this an issue?

There’s no need to null test in conjunction with an TypeOf ... Is test. Nothing is not an instance of anything, so a null check is redundant.

Noncompliant code example


If (x IsNot Nothing And TypeOf x Is MyClass)
    ' ...
End If

If (x Is Nothing Or TypeOf x IsNot MyClass)
    ' ...
End If

Compliant solution


If (TypeOf x Is MyClass)
    ' ...
End If

If (TypeOf x IsNot MyClass)
    ' ...
End If

↑ Back to top