In VB.Net is het mogelijk type safety te omzeilen en standaard staat het omzeilen van de checks aan(ook in VB.NET 2005). Ik vraag me af waarom dit standaard wordt gedaan? Het zal toch niet zijn omdat je dan minder fouten tijdens het compileren krijgt? Persoonlijk vind ik een runtime fout namelijk veel erger. Neem de volgende functie:
Function GetValue(ByVal i As Single) As Single
If i = 1 Then
Return i
Else
Return "waarde als string"
End If
End Function
Wanneer ik onderstaande regel gebruik om deze functie aan te roepen zal er geen foutmelding ontstaan, er wordt immers een single terug gegeven.
Dim waarde As Single = GetValue(1)
Wanneer ik echter de volgende aanroep gebruik krijg ik wel een foutmelding omdat er geprobeerd wordt een string aan een single terug te geven.
Dim waarde As Single = GetValue(2)
Met Option Strict On zorg je ervoor dat type safety checks aanstaan. Zet deze optie dus altijd aan als je in VB.Net programmeert. Het beste kan je dit in de properties van je project instellen.