Navigatie

Contact

Send mail to the author(s) E-mail

View Richard Soeteman's profile on LinkedIn

RSS 2.0 | Atom 1.0 | CDF

Archief

Categorieën

Blogroll

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

Sign In

Zoeken

# Friday, 03 February 2006
Friday, 03 February 2006 22:57:45 (GMT Standard Time, UTC+00:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

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.

Comments [4] | | # 
Saturday, 04 February 2006 07:05:30 (GMT Standard Time, UTC+00:00)
Leuk he :-)

Een andere mooie optie is Option Explicit. Gelukkig staat die standaard aan. Echter, je kunt die ook uitzetten.

Ik ben in de praktijk de volgende code tegengekomen

Option Explicit Off
GEMIDDELDERENTEPERCENTAGEGEDURENDEGEHELELOOPTIJD = 'een moeilijke berekening
even verder op (drie regels of zo lager)
Textbox1.Text = CString(GEMIDDELDERENTEPRECENTAGEGEDURENDEGEHELELOOPTIJD)

Voor degene die het niet meteen zin: er zit een typfout in de variabele (rentepercentage en rentepRecentage).

Zoek het maar eens uit....
Sunday, 05 February 2006 07:15:31 (GMT Standard Time, UTC+00:00)
Ja ook deze optie is zeer gevaarlijk. In VB6 stond deze nogal eens uit. Wat er eigenlijk in VB.NET zou moeten zitten, is een optie om backwards compatibiliteit met VB6 uit te kunnen schakelen. De code zal dan al een stuk overzichtelijker worden, ook wordt de programmeur dan gedwongen netjes te programmeren. De (logische) stap naar C# is dan ook niet zo groot.
Thursday, 09 February 2006 18:34:09 (GMT Standard Time, UTC+00:00)
Echte mannen programmeren in C# ;)

Alles goed Soet? Beetje naar je zin bij ..euhm.. je nieuwe job?
Friday, 10 February 2006 11:39:19 (GMT Standard Time, UTC+00:00)
Echte mannen programmeren in de taal die het beste is toegespitst op het probleem waar ze op dat moment mee te maken hebben... :)
Comments are closed.