Verschillen tussen Visual Basic 6.0 en Visual Basic 2005
Ik ga het hier hebben over verschillen tussen Visual Basic 6.0 en Visual Basic 2005 die ik tot nu toe ben tegengekomen. Ik zelf ben nog lerende.
Voorbeeld van het manipuleren van variabelen:
Je wilt bijvoorbeeld 400 bij een integer optellen.
Visual Basic 6.0 manier:
Code:
Dim integertje as integer
Integertje = integertje + 1
Integertje heeft hier de waarde 1 gekregen.
Visual Basic 2005 manier:
Code:
Dim integertje as integer = 0
Integertje += 1
Integertje heeft hier dezelfde waarde gekregen.
Je ziet dus dat integertje meteen de waarde 0 krijgt. Dit is niet nodig, maar het is wel handig voor als je if/else constructies gebruikt vanwege waarschuwingen. Het hoeft niet, want net zoals Visual Basic 6.0 staat een integer standaard op 0. Hier ga ik later op in. Het voordeel is dus dat het korter is.
Met deze code kan je bijvoorbeeld ook strings met elkaar combineren. Stel je hebt 2 strings. String1 en String2. String1 bevat de variabele ‘1’ en String2 bevat de variabele ‘2’. Als je simpelweg String1 &= String2 gebruikt is de uitkomst ‘12’. Ook al zijn er nu getallen in de 2 strings gestopt, wanneer je += zou hebben gebruikt zou het dezelfde uitkomst hebben gehad. Omdat het strings zijn word het niet opgeteld. Dit is dus hetzelfde als in Visual Basic 6.0.
Waarom meteen bij het declareren een variabele meegeven?
Zoals ik eerder al zei is het handig voor if/else constructies. Neem bijvoorbeeld deze code:
Code:
Dim a As String
If 1 = 2 Then
a = "hihi"
End If
MessageBox.Show(a)
Bij Visual Basic 2005 krijg je in de Error List de volgende waarschuwing te zien: ‘Variable 'a' is used before it has been assigned a value. A null reference exception could result at runtime.’. Met andere woorden je zou dus een lege output kunnen krijgen tijdens het uitvoeren. Visual Basic controleert dit dus voor je. Bijvoorbeeld:
Code:
Dim a As String
If 1 = 2 Then
a = "hihi"
Else
a = "hoho"
End If
MessageBox.Show(a)
Hier geeft Visual Basic geen waarschuwing omdat de string a hier zoweizo een variabele krijgt. Dit is alleen zo bij strings.
Booleans staan standaard op false. (1 of 0 werkt niet meer in Visual Basic 2005).
Integers staan standaard op 0.
Singles staan standaard op 0.
Bovenstaande types zullen altijd een waarde hebben.
Nog korte veranderingen over de messagebox.
Visual Basic 6.0 code voor een uitgebreide messagebox:
Code:
MsgBox "content", vbInformation + vbOKOnly, "titel"
Dit weergeeft dus een bericht met een informatiewolkje en een OK-knop.
Visual Basic 2005 code voor een uitgebreide messagebox:
Code:
MessageBox.Show("content", "titel", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
Dit weergeeft dus een bericht met een informatiewolkje en een OK-knop waar de focus op staat door het argument ‘MessageBoxDefaultButton.Button1’. De titel van deze messagebox staat rechts uitgelijnd door het argument ‘MessageBoxOptions.RightAlign’.
Nog een verschil; bij Visual Basic 6.0 kan je controleren of er op OK is geklikt door te kijken of het gelijk is aan vbOK. Bij Visual Basic 2005 word Windows.Forms.DialogResult.OK gebruikt. Gewoon msgbox werkt nog wel met dezelfde argumenten. Maar het kan ook zo: MsgBox("content", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "titel")
Als ik weer enkele verschillen tegenkom dan zal ik er weer een lijstje van maken en posten. Een goed idee?