# NullReferenceException

# Empty Return

Function TestFunction() As TestClass
    Return Nothing
End Function

BAD CODE

TestFunction().TestMethod()

GOOD CODE

Dim x = TestFunction()
If x IsNot Nothing Then x.TestMethod()

Null Conditional Operator (opens new window)

TestFunction()?.TestMethod()

# Uninitialized variable

BAD CODE

Dim f As System.Windows.Forms.Form
f.ShowModal()

GOOD CODE

Dim f As System.Windows.Forms.Form = New System.Windows.Forms.Form
' Dim f As New System.Windows.Forms.Form ' alternative syntax
f.ShowModal()

EVEN BETTER CODE (Ensure proper disposal of IDisposable object more info (opens new window))

Using f As System.Windows.Forms.Form = New System.Windows.Forms.Form
' Using f As New System.Windows.Forms.Form ' alternative syntax
    f.ShowModal()
End Using

# Remarks

NullReferenceException is thrown whenever a variable is empty and one of its method/properties are referenced. To avoid this, be sure all variables are initialized correctly (new operator), and all methods returns a non-null value.