Navigatie

Archief

Categorieën

Blogroll

Contact

Send mail to the author(s) E-mail

View Richard Soeteman's profile on LinkedIn

RSS 2.0 | Atom 1.0 | CDF

Disclaimer
De inhoud van deze weblog betreft uitsluitend mijn persoonlijke mening, niet die van mijn werkgever. Mijn werkgever is niet verantwoordelijk voor de inhoud en sluit hierbij iedere aansprakelijkheid uit.

Sign In

Zoeken

 Friday, February 03, 2006
Friday, February 03, 2006 10:57:45 PM (W. Europe Standard Time, UTC+01:00) ( )

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, February 04, 2006 7:05:30 AM (W. Europe Standard Time, UTC+01: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, February 05, 2006 7:15:31 AM (W. Europe Standard Time, UTC+01: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, February 09, 2006 6:34:09 PM (W. Europe Standard Time, UTC+01:00)
Echte mannen programmeren in C# ;)

Alles goed Soet? Beetje naar je zin bij ..euhm.. je nieuwe job?
Friday, February 10, 2006 11:39:19 AM (W. Europe Standard Time, UTC+01:00)
Echte mannen programmeren in de taal die het beste is toegespitst op het probleem waar ze op dat moment mee te maken hebben... :)
Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):