Crew .NET |
|
1. Ik heb je topic naar de categorie VB.NET verplaatst omdat het op zich niets met OOP te maken heeft.
2. Wat jij doet is fout (en daarbij bedoel ik niet hetgeen je zelf al aangeeft). Laat ons er vanuit gaan dat die regel 3 (de vergelijking) wel juist is. Als ik nu een niet-numerieke waarde ingeef, zal je een InvalidCastException krijgen want je geeft de veriabele 'Prijs', wat een Decimal is, een String-waarde!
Hieronder is de juiste code, waarin je eerst kijkt of de invoer numeriek is en dan Cast naar een Decimal:
Dim prijs As Decimal
'IsNumeric() is een ingebouwde funtie in VB.NET om na
'te kijken of een meegegeven parameter numeriek is.
'De functie geeft dan automatisch een True of False terug.
If IsNumeric(txtPrijs.Text) Then
'Numeriek (enkel cijfers)
prijs = CType(txtPrijs, Decimal)
Else
'Bevat ook letters
MessageBox.Show("Er mogen geen letters ingevuld worden", "Info", MessageBoxButtons.OK, MeesageBoxIcon.Information)
End If
Dim prijs As Decimal 'IsNumeric() is een ingebouwde funtie in VB.NET om na 'te kijken of een meegegeven parameter numeriek is. 'De functie geeft dan automatisch een True of False terug. If IsNumeric(txtPrijs.Text) Then 'Numeriek (enkel cijfers) prijs = CType(txtPrijs, Decimal) Else 'Bevat ook letters MessageBox.Show("Er mogen geen letters ingevuld worden", "Info", MessageBoxButtons.OK, MeesageBoxIcon.Information) End If
Ik hoop dat er genoeg uitleg is en dat de code duidelijk is zodat je het begrijpt! |