Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Val() di VBNet in C#
Forum - C# / VB.NET - Val() di VBNet in C#

Avatar
superchecco (Normal User)
Pro


Messaggi: 141
Iscritto: 20/01/2007

Segnala al moderatore
Postato alle 8:54
Mercoledì, 24/10/2007
Questo topic è stato chiuso dal moderatore

Salve a tutti, sto provando a imparare il C#!
Il problema è che non conosco ne C ne C++ ma solo VBNet e il passaggio mi riesce (dal punto di vista della sintassi) piuttosto difficile...

veniamo al dunque, se devo sommare 2 numeri inseriti dall'utente in input in due textbox, in vbnet facevo
Codice sorgente - presumibilmente VB.NET

  1. dim a as single
  2. dim b as single
  3. dim c as single=0
  4. a=val(txt1.text)
  5. b=val(txt2.text)
  6. c=a+b
  7. messagebox.show("risultato:" & c)



in c# (direi eh)
Codice sorgente - presumibilmente C# / VB.NET

  1. single a;
  2. single b;
  3. single c;
  4. a=txt1.text;
  5. b=txt2.text;
  6. c=a+b;
  7. messagebox.show("risultato" + c);



il problema è che a e b sono 2 stringhe e quindi lui me le concatena solo
(per esempio se inserisco 5 e 4 il risultato è 54 :-| )

Tutto questo perche non trovo (non so se c è!) la funzione Val()!

Ultima modifica effettuata da superchecco il 24/10/2007 alle 8:57
PM
Avatar
Black Shadow (Founder Member)
Expert


Messaggi: 323
Iscritto: 30/03/2006

Segnala al moderatore
Postato alle 14:15
Mercoledì, 24/10/2007
Testo quotato

Postato originariamente da superchecco:
Tutto questo perche non trovo (non so se c è!) la funzione Val()!



Tutto quello che si può fare in VB.NET si può fare anche in C# (non è vero il contrario).

Ma veniamo al dunque:
Il C# dispone di una classe chiamata Convert che ha la funzione che cerchi.

Quindi:
Codice sorgente - presumibilmente C# / VB.NET

  1. float a;
  2. float b;
  3. float c;
  4. [b]a = Convert.ToSingle(txt1.Text);
  5. b = Convert.ToSingle(txt2.Text);[/b]
  6. c=a+b;
  7. [b]MessageBox.Show("risultato" + c);[/b]



Premesso che il C# è Case-Sensitive, quindi 'a' è diverso da 'A'.
Inoltre come puoi vedere 'single' di VB.NET in C# si dichiara come float (che poi sarebbe la struct Single).

Per la conversione basta il Convert.ToSingle();;)

PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 19:47
Mercoledì, 24/10/2007
Val è una funzione vb6: inoltre non converte tutte la stringa in un numero, ma solo il primo carattere. E' quindi inutile. D'altra parta, si puo' sempre usare l'operatore CType, che è molto più rapido e flessibile di Convert.

PM
Avatar
superchecco (Normal User)
Pro


Messaggi: 141
Iscritto: 20/01/2007

Segnala al moderatore
Postato alle 14:50
Venerdì, 26/10/2007
grazie mille!

PM