Po[wP]ow Skrevet 16. september 2008 Del Skrevet 16. september 2008 (endret) Jeg skulle bare lage en enkel kalkulator i Microsoft Visual C#, da jeg fikk en error jeg ikke skjønner. Koden er som følger namespace WindowsFormsApplication1 { public partial class Form1 : Form { Double xDouble; Double yDouble; public Form1() { InitializeComponent(); } private void cnvToStr() { double xDouble = Convert.ToDouble(txtKalk1.Text); double yDouble = Convert.ToDouble(txtKalk2.Text); } private void btnPluss_Click(object sender, EventArgs e) { cnvToStr(); labMelding.Text = Convert.ToString(xDouble+yDouble); } private void btnMinus_Click(object sender, EventArgs e) { cnvToStr(); labMelding.Text = Convert.ToString(xDouble - yDouble); } private void btnGange_Click(object sender, EventArgs e) { cnvToStr(); labMelding.Text = Convert.ToString(xDouble * yDouble); } private void btnDele_Click(object sender, EventArgs e) { cnvToStr(); labMelding.Text = Convert.ToString(xDouble / yDouble); } } } Men jeg får som melding: "Field 'WindowsFormsApplication1.Form1.xDouble' is never assigned to, and will always have its default value 0" Hvorfor? Hvordan fikser jeg det? Endret 16. september 2008 av Po[wP]ow Lenke til kommentar
steingrim Skrevet 16. september 2008 Del Skrevet 16. september 2008 Men jeg får som melding: "Field 'WindowsFormsApplication1.Form1.xDouble' is never assigned to, and will always have its default value 0" Les meldingen, hva står det der? private void cnvToStr() { double xDouble = Convert.ToDouble(txtKalk1.Text); double yDouble = Convert.ToDouble(txtKalk2.Text); } Her er uansett problemet ditt. Du deklarerer nye, lokale xDouble og yDouble i denne metoden som overskygger instans-variablene. Dermed tilordner du aldri Form1.xDouble en verdi, akkurat som beskrevet i feilmeldingen Lenke til kommentar
HDSoftware Skrevet 17. september 2008 Del Skrevet 17. september 2008 Strengt tatt er det vel en warning du får og ikke en feilmelding. Visual Studio prøver hele tiden å passe på deg når du programmerer. Denne warningen forteller deg at du har definert en variabel som du aldri bruker. Dette er en pekepinn til deg om at du like gjerne kan fjerne den, ikke en feilmelding om at du har en variabel definert for mye, og følgelig er ikke dette en feil og vil heller aldri resultere i noe problem Lenke til kommentar
Manfred Skrevet 17. september 2008 Del Skrevet 17. september 2008 Men problemet er at trådstarter deklarerer to nye lokale variabler, og tilordner aldri noen verdier til de han bruker til å regne med. Dette vil føre til en DivideByZeroException bl.a. etterhvert. Lenke til kommentar
HDSoftware Skrevet 17. september 2008 Del Skrevet 17. september 2008 Men problemet er at trådstarter deklarerer to nye lokale variabler, og tilordner aldri noen verdier til de han bruker til å regne med. Dette vil føre til en DivideByZeroException bl.a. etterhvert. Joda, det er riktig, men innledende problem handlet om en warning og ikek en feil i koden. Var bare det jeg ville poengtere Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå