C# unassigned local variabele

Status
Niet open voor verdere reacties.

Burban

Gebruiker
Lid geworden
23 feb 2009
Berichten
19
Code:
private void button1_Click(object sender, system.EventArgs e)
        
        {
            double a, b, c;
            double.Parse(txtGetal1.Text);
            double.Parse(txtGetal2.Text);
            c = telop([B][COLOR="Red"]a,b[/COLOR][/B]);
            /*Start de Methode "Telop" en geeft de waarden 1 en 2 door*/
            MessageBox.Show(c.ToString());
            }
        
double telop(double a, double b)
        {
            double resultaat;
            resultaat = a + b;
            return resultaat;
        }

Mijn vraag is wat hier fout gaat? Bij het starten van de methode c=telop(a,b) krijg ik een error dat het gerbuik van een unasssigned locale variabele a en b niet goed is.

Alvast bedankt.
 
Heb niet echt veel kennis van C(#/++), maar ik denk dat het probleem is dat a en b geen waarde hebben. Je initialiseert ze wel, maar kent geen waarde toe.
 
Klaarblijkelijk zet c# geen standaardwaarden bij het declareren van variabelen.
Zie dat a, b en c lokale variabelen zijn van Button1_click.
Omdat je verder niets doet (=geen waarde toekent) aan a en b krijg je daarna bij de aanroep van telop (a,b) een foutmelding (zie eerste regel van mijn tekst hierboven).

Even afgezien van het feit dat je a en b geen waarde geeft (dus het nut van die variabelen er niet is), zou je in ieder geval even kunnen testen als je a en b wél een waarde geeft vóórdat telop wordt aangeroepen.
Dus (voorbeeld; hier zou c de waarde 50 moeten krijgen):

[cpp]private void button1_Click(object sender, system.EventArgs e)

{
double a, b, c;
double.Parse(txtGetal1.Text);
double.Parse(txtGetal2.Text);
a = 20;
b = 30;
c = telop(a,b);
/*Start de Methode "Telop" en geeft de waarden 1 en 2 door*/
MessageBox.Show(c.ToString());
}

double telop(double a, double b)
{
double resultaat;
resultaat = a + b;
return resultaat;
}[/cpp]
 
Laatst bewerkt:
Moet het trouwens niet zijn:
[CPP]
a = double.Parse(txtGetal1.Text);
b = double.Parse(txtGetal2.Text);
[/CPP]
 
Heb niet echt veel kennis van C(#/++), maar ik denk dat het probleem is dat a en b geen waarde hebben. Je initialiseert ze wel, maar kent geen waarde toe.

Ik heb wel kennis van C(++/#) en ik vind dat je gelijk hebt :)

Om het probleem op te lossen zou je de code van dnties kunnen gebruiken, maar persoonlijk vind ik het een goed aanwennen om variabelen direct een waarde te geven wanneer je ze declareert:

[cpp]
double a = 0, b = 0, c = 0;
[/cpp]

De C#-compiler geeft je namelijk een mooie fout wanneer je dit niet doet, maar C++ geeft alleen een waarschuwing. Dit betekend dat C++ je stukje code gewoon had uitgevoerd, met een onherroepelijke crash tot gevolg. Bij dit soort simpele programma's is de fout dan snel gevonden, maar wanneer je programma's groter worden kun je hier vrij veel tijd mee kwijtraken.

@dnties: We hebben hier mooie code-tags [cpp] //code [/cpp]. Dat houdt je code wat leesbaarder ;)
 
Bedankt voor jullie reacties,
Het toekennen van waarden aan variabelen begrijp ik.
Maar hoe komt het dan dat de waarden niet uit de txtgetal1 en 2 wordt gehaald?.

Hieronder staat de Link naar de tutorial waar ik mee bezig ben.
http://www.ivosa.be/cursus/
---------------------------------------------------------------------------------
niek_e Thanx,
Jouw Tip werkt :thumb:

Ben eindelijk van de Error: af.
Nu nog een Error: met `} expected?
 
[CPP]
private void button1_Click(object sender, system.EventArgs e)
{
double a, b, c;
a = double.Parse(txtGetal1.Text);
b = double.Parse(txtGetal2.Text);
c = telop(a,b);
/*Start de Methode "Telop" en geeft de waarden 1 en 2 door*/
MessageBox.Show(c.ToString());
}

double telop(double a, double b)
{
double resultaat;
resultaat = a + b;
return resultaat;
}
[/CPP]

Zo ook niet? Zoals ik in m'n vorige post al aangaf :confused:
 
Zo doet hij het ook, Thanx.
Maar heb nu weer een error: ??

Achter de allerlaatste ' } ' staat dat deze wordt verwacht??




Damn:evil:
 
Laatst bewerkt:
Tsja, dat gaat mij dan al weer te diep in op de materie. Heeft het niet iets te maken met dat je de main() sub niet afsluit ofzo? Maarja, misschien roep ik nu iets heel geks ;)
 
Mij ook. Wil je leren programmeren, zoek je een goeie online-tutorial op.

Werkt het niet!! :shocked:
 
@Burban: Post nog eens de code zoals je die nu hebt en die die error heeft?
Zet de code tussen [cpp] en [/cpp] tags, voor de leesbaarheid.

We zien het wel.

Tijs.
 
[CPP]private void button1_Click(object sender, EventArgs e)
{
double a, b, c;
a = double.Parse(txtGetal1.Text);
b = double.Parse(txtGetal2.Text);
c = telop(a, b);
MessageBox.Show(c.ToString());
}
double telop(double eerste, double tweede)
{
double resultaat;
resultaat = eerste + tweede;
return resultaat;

}
}
}[/CPP]

Duizendmaal dank voor jullie reacties :thumb:
Probleem is opgelost. Kan weer verder.

Thanx guys,
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan