|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
[C#]Problema con conversione
Ho questo cod:
Codice:
private void button_Click(object sender, System.EventArgs e) { Doppi maz = new Doppi(); Object prim = (Object)txtPrimo.Text; Object second = (Object)txtSecondo.Text; int primo = (int)prim; int secondo = (int)second; maz.somma(primo, secondo); Object res = (Object)maz.ris; txtRis.Text = res; } ![]() |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Sep 2000
Messaggi: 886
|
txtRis.Text = res;
Anche se non si capisce qual'è la riga che ti da errore mi sa che è questa txtRis.Text = (string)res; dovrebbe andare....
__________________
1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. ![]() |
![]() |
![]() |
![]() |
#4 | |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Quote:
|
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ribadisco che io non ci capisco una mazza di C#, ma così non funziona ?
Codice:
string prim = txtPrimo.Text; string second = txtSecondo.Text; int primo = (int)prim; int secondo = (int)second; maz.somma(primo, secondo); string res = (string)maz.ris; txtRis.Text = res; |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Sep 2000
Messaggi: 886
|
In effetti, vedendo quello che vuoi fare, non capisco il perchè ti tutti questo passaggi attraverso Object....puoi rendere comprensibile il tuo codice facendo come ti ha detto Cionci anche se l'eccezione mi sa che è divuta al fatto che dichiari degli interi e lavori su numeri decimali.....infatti in compilazione funziona poi a runtime fai del casino....cosa succede se metti 5 anzichè 0.5?
__________________
1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. ![]() |
![]() |
![]() |
![]() |
#7 |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
mi da
|
![]() |
![]() |
![]() |
#8 |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
ho la lib esterna:
Codice:
using System; namespace Matcod { interface IMateIntero { int somma(int i, int y); int sottrai(int i, int y); } interface IMateDoppio { double somma(double i, double y); double sottrai(double i, double y); } public class Interi:IMateIntero { public int ris; public int somma(int i, int y) { int ris= i+y; return ris; } public int sottrai(int i, int y) { int ris= i+y; return ris; } } public class Doppi:IMateDoppio { public double ris; public double somma(double i, double y) { double ris= i+y; return ris; } public double sottrai(double i, double y) { double ris= i+y; return ris; } } } Codice:
// created on 04/02/2003 at 19.21 using System; using System.Windows.Forms; using Matcod;// richiamo alla libreria esterna namespace MyForm { public class CreatedForm : System.Windows.Forms.Form { private System.Windows.Forms.TextBox txtRis; private System.Windows.Forms.Button btnCalc; private System.Windows.Forms.TextBox txtSecondo; private System.Windows.Forms.TextBox txtPrimo; public CreatedForm() { InitializeComponent(); } void InitializeComponent() { this.txtPrimo = new System.Windows.Forms.TextBox(); this.txtSecondo = new System.Windows.Forms.TextBox(); this.btnCalc = new System.Windows.Forms.Button(); this.txtRis = new System.Windows.Forms.TextBox(); this.SuspendLayout(); // // txtPrimo // this.txtPrimo.Location = new System.Drawing.Point(96, 8); this.txtPrimo.Name = "txtPrimo"; this.txtPrimo.TabIndex = 0; this.txtPrimo.Text = ""; // // txtSecondo // this.txtSecondo.Location = new System.Drawing.Point(224, 8); this.txtSecondo.Name = "txtSecondo"; this.txtSecondo.TabIndex = 1; this.txtSecondo.Text = ""; // // btnCalc // this.btnCalc.Location = new System.Drawing.Point(184, 88); this.btnCalc.Name = "btnCalc"; this.btnCalc.TabIndex = 2; this.btnCalc.Text = "Calcola"; this.btnCalc.Click += new System.EventHandler(this.button_Click); // // txtRis // this.txtRis.Location = new System.Drawing.Point(176, 48); this.txtRis.Name = "txtRis"; this.txtRis.TabIndex = 3; this.txtRis.Text = ""; // // CreatedForm // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(432, 118); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.txtRis, this.btnCalc, this.txtPrimo, this.txtSecondo}); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; this.Name = "CreatedForm"; this.Text = "Sommatrice"; this.ResumeLayout(false); } // //La funzione che riempie il Text di txtRis con l'operazione di somma // private void button_Click(object sender, System.EventArgs e) { Interi maz = new Interi();// oggetto esterno Object prim = (Object)txtPrimo.Text; Object second = (Object)txtSecondo.Text; int primo = (int)prim; int secondo = (int)second; maz.somma(primo, secondo); Object res = (Object)maz.ris; txtRis.Text = (string)res; } public static void Main() { MyForm.CreatedForm mioForm = new MyForm.CreatedForm(); Application.Run(mioForm); } } } |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Sep 2000
Messaggi: 886
|
primo:
per passare da stringa ad intero devi usare il metodo Parse: esempio: string a = "111"; int i = int.Parse(a); secondo: public int ris; public int somma(int i, int y) { int ris= i+y; questo pezzo qui non mi convince per nulla....non ho il compilatore per fare qualche prova ma alla fin fine penso che ti uscirebbero fuori dei gran "0" come risultato.... secondo me ris=i+y è la forma corretta, mai sentito parlare di "scope" (all'inglese ![]() Prova a correggere il tuo codice così....
__________________
1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. ![]() |
![]() |
![]() |
![]() |
#10 |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Codice:
private void button_Click(object sender, System.EventArgs e) { Interi maz = new Interi();// oggetto esterno string prim = txtPrimo.Text; string second = txtSecondo.Text; int primo = int.Parse(prim); int secondo = int.Parse(second); ; maz.somma(primo, secondo); txtRis.Text = (string)maz.ris;//ora mi da errore qui } |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Sep 2000
Messaggi: 886
|
maz.somma(primo, secondo);
int res = maz.ris; txtRis.Text = res.ToString();
__________________
1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. ![]() |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Mi sembra che tu ti stia complicando la vita per niente...
Codice:
private void button_Click(object sender, System.EventArgs e) { Interi maz = new Interi();// oggetto esterno maz.somma(int.Parse(txtPrimo.Text), int.Parse(txtSecondo.Text)); txtRis.Text = maz.ris.ToString(); } |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Sep 2000
Messaggi: 886
|
Dai che finalmente Cionci si converte al C#
![]() ![]()
__________________
1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. ![]() |
![]() |
![]() |
![]() |
#14 | |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#15 |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
ora va ma mi da sempre 0
![]() |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Sep 2000
Messaggi: 886
|
Te l'ho detto prima....
![]() ----------- secondo: public int ris; public int somma(int i, int y) { int ris= i+y; questo pezzo qui non mi convince per nulla....non ho il compilatore per fare qualche prova ma alla fin fine penso che ti uscirebbero fuori dei gran "0" come risultato.... secondo me ris=i+y è la forma corretta, mai sentito parlare di "scope" (all'inglese ![]() Prova a correggere il tuo codice così.... -------------
__________________
1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. ![]() |
![]() |
![]() |
![]() |
#17 |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
risolto
|
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Come dice giustamente atragon...il ris che vai a legere non è quello in cui hai messo il risultato...
|
![]() |
![]() |
![]() |
#19 | |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Quote:
e che ieri dopo aver letto il libro ho provato a scrivermi tutto nel blocco note e quell int mi è skappato! Poi oggi ho dovuto declinare 2 volte tutti i pronomi greci e nn ci ho fatto caso appena aperto l'editor ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:10.