login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Code OOP (Opgelost)

Offline rredspike1 - 04/10/2008 23:37
Avatar van rredspike1Lid Hi ik heb de volgende code

Zou niet weten of ik wel op de goede weg zit, maar wie kan het eventueel nakijken en verbeteren

  1. Dim Prijs As Decimal
  2. Prijs = txtPrijs.Text
  3. If Prijs = String Then
  4. MessageBox.Show("Er mogen geen letters ingevuld worden")
  5. End If


Dit klopt niet maar ik wil dat er in die txtPrijs.Text geen letters mogen, maar alleen getallen.

2 antwoorden

Gesponsorde links
Offline Abbas - 05/10/2008 03:23
Avatar van Abbas Gouden medaille

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:
  1. Dim prijs As Decimal
  2. 'IsNumeric() is een ingebouwde funtie in VB.NET om na
  3. 'te kijken of een meegegeven parameter numeriek is.
  4. 'De functie geeft dan automatisch een True of False terug.
  5. If IsNumeric(txtPrijs.Text) Then
  6. 'Numeriek (enkel cijfers)
  7. prijs = CType(txtPrijs, Decimal)
  8. Else
  9. 'Bevat ook letters
  10. MessageBox.Show("Er mogen geen letters ingevuld worden", "Info", MessageBoxButtons.OK, MeesageBoxIcon.Information)
  11. End If

Ik hoop dat er genoeg uitleg is en dat de code duidelijk is zodat je het begrijpt! 
Offline rredspike1 - 05/10/2008 18:40
Avatar van rredspike1 Lid ja dank je wel!!

Ik begrijp de code!!

IsNumeric() moest ik gebruiken!!

Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.167s