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 - Problema codice geometria(textbox1.text sia numero che testo)
Forum - C# / VB.NET - Problema codice geometria(textbox1.text sia numero che testo)

Avatar
bios1993 (Normal User)
Pro


Messaggi: 64
Iscritto: 18/01/2009

Segnala al moderatore
Postato alle 15:31
Domenica, 24/05/2009
Sto creando un programma di geometria e mi sono bloccato al primo intoppo
ho provato vari modi per risolvere però non sono riuscito a risolvere ho anche dichiarato
Codice sorgente - presumibilmente VB.NET

  1. Public Sub Triangolo_eq()
  2.         Dim b As Object = Form2.TextBox3.Text
  3.         Dim ht As Object = Form2.TextBox4.Text
  4.         Dim At As Object = Form2.TextBox5.Text
  5.         If ht < 0 & b < 0 & At = "?" Then
  6.             RichTextBox1.Text = "At = b·h/2 =" & (b * ht) / 2
  7.         End If
  8. End sub


da come si capisce da codice le textbox non si trovano nello stesso form del codice
poi dopo ho anche sostituito gli object con i Double ma non va
qualcuno sa come risolvere

PS: a me serve che nelle textbox possono avere entrambi i valori sia numeri che lettere
se è possibile

Ultima modifica effettuata da bios1993 il 24/05/2009 alle 15:52
PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 16:56
Domenica, 24/05/2009
scusa ma perché usi un object?
la proprietà text resituisce uno String quindi devi metterlo in uno string


poi quando avrai tutto in 3 string farai i controlli del caso trasformando i numeri in double

PM Quote
Avatar
bios1993 (Normal User)
Pro


Messaggi: 64
Iscritto: 18/01/2009

Segnala al moderatore
Postato alle 17:11
Domenica, 24/05/2009
:hail: non me n'ero accorto, che figura:rofl:
grazie

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 19:14
Lunedì, 25/05/2009
Puoi anche dichiarare una variabile in questo modo
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim NOMEVARIABILE


senza specificare il contenuto. "Pesa di più" nel programma, ma ,a volte, è molto utile.
Quando la assegni il programma non sà che tipo di dato è, ma dopo lo "capisce".
Ciao :k:


EDIT: ma perchè usi la richtextbox per un dato che non hai bisogno cambiare font o colore???:-|

Ultima modifica effettuata da il 25/05/2009 alle 19:15
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 19:16
Lunedì, 25/05/2009
Testo quotato

Postato originariamente da cassin.simone:
Quando la assegni il programma non sà che tipo di dato è, ma dopo lo "capisce".
Ciao :k:


Questo vale solo nella versione 2008. Dalla 2005 in giù, si tratta solo di conversioni implicite.

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 19:18
Lunedì, 25/05/2009
Totem, mi dispiace dirtelo, ma io ho la 2005 e ho usato un paio di volte questa bellissima funzione.

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 19:27
Lunedì, 25/05/2009
Fidati di me. Non ho detto che non si può fare, ho solo rettificato che dalla 2005 in giù si tratta di conversioni implicite. Infatti, scrivere:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim Var


equivale a scrivere
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim Var As Object


Quindi eseguendo un'assegnazione viene sempre perpetrata una conversione da object al tipo desiderato (processo di unboxing), che, come hai detto tu, influisce sulla pesantezza del risultato.
In vb2008 e nelle versioni successive, invece, il tipo viene inferito, quindi dedotto, dal dato che viene assegnato alla variabile: l'inferenza è un processo differente dalla conversione. Infatti, scrivere:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim Var = 1


equivale a scrivere:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim Var As Integer = 1


Nota che c'è un passaggio in meno (la variabile non è di tipo object, ma direttamente Integer).

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 19:39
Lunedì, 25/05/2009
Testo quotato

Postato originariamente da Il Totem:

Fidati di me. Non ho detto che non si può fare, ho solo rettificato che dalla 2005 in giù si tratta di conversioni implicite. Infatti, scrivere:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim Var


equivale a scrivere
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim Var As Object


Quindi eseguendo un'assegnazione viene sempre perpetrata una conversione da object al tipo desiderato (processo di unboxing), che, come hai detto tu, influisce sulla pesantezza del risultato.
In vb2008 e nelle versioni successive, invece, il tipo viene inferito, quindi dedotto, dal dato che viene assegnato alla variabile: l'inferenza è un processo differente dalla conversione. Infatti, scrivere:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim Var = 1


equivale a scrivere:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim Var As Integer = 1


Nota che c'è un passaggio in meno (la variabile non è di tipo object, ma direttamente Integer).



Esattamente quello che stavo dicendo io...c'è stata un incongruenza...:asd:

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 19:43
Lunedì, 25/05/2009
comunque credo che la fatica di scrivere cinque lettere per dire di che tipo deve essere la variabile sia ampiamente ricompensata da una maggiore leggibilità del programma....

PM Quote