Zoals nu duidelijk is bevatten variabelen van een reference type steeds een referentie naar een object. Maar wat als we dit schrijven:
Dit zal een fout geven. stud1
bevat namelijk nog geen referentie. Maar wat dan wel?
Deze variabele bevat de waarde null
. Dit is de defaultwaarde voor reference types. Met andere woorden, als je een reference type declareert en niet initialiseert, zal de waarde null
zijn.
Een veel voorkomende foutboodschap tijdens de uitvoer van je applicatie is de zogenaamde NullReferenceException
. Deze zal optreden wanneer je code een member (attribuut, methode of property) van null
probeert op te vragen.
Laten we dit eens simuleren:
Dit zal resulteren in volgende foutboodschap:
We moeten in dit voorbeeld expliciet
= null
plaatsen daar Visual Studio slim genoeg is om je te waarschuwen voor eenvoudige potentiƫle NullReference fouten en je code anders niet zal compileren.
Je kan NullReferenceException
voorkomen door na te gaan dat een object verschillend is van null vooraleer je een van de members van dit object probeert te gebruiken. Bijvoorbeeld, met een klasse Auto
:
Deze code zal niet crashen. Als je de WriteLine
uitvoert zonder if, zal het programma wel crashen met een NullReferenceException
.
Waarom is null
en niet == null
? Die vraag leidt ons te ver. Meestal zal == null
ook werken, maar ==
kan aangepast worden om anders te werken dan gewoonlijk. is
is dus betrouwbaarder.