Klassen

Status
Niet open voor verdere reacties.

rambomambo

Gebruiker
Lid geworden
9 dec 2012
Berichten
163
Ik heb iets simpels gemaakt door klassen onder de knie te krijgen maar het lukt maar niet

in bijlage vind je een simpele wpf C# programma die als doel heeft 2getallen op te tellen.
Maar als ik dan uitreken met de button vlieg ik eruit heb het opgevangen door een try catch maarja
dan voert hij mijn programma niet uit

weet er iemand waar ik iets verkeerd gedaan heb

alvast bedankt



Bekijk bijlage Arraytest.rar
 
Maar wat is nu het probleem? worden de getallen niet geconverteerd? waar loopt het vast?
 
Als je getal1 en getal2 invult en wilt berekenen zal hij de lege textbox voor de uitkomst niet kunnen converten naar een getal, daar komt de exception vandaan.
 
ja daar loopt het idd fout maar als ik nu een textbox of label gebruik ik krijg dezelfde fout. en dit is bij de conversie van mijn uitkomst
hoe kan ik dit oplossen ?
 
Je hoeft je uitkomst nooit te converten, de berekening zit in je class en daar komt het uit zoals je zelf wilt (of een exception als je door 0 wilt delen ooit bijvoorbeeld).

getal1 = x
getal2 = y

Code:
private void btnArray_Click(object sender, RoutedEventArgs e)
{
	int x;
	int y;

	try
	{
		x = Convert.ToInt32(tbGetal1.Text);
		y = Convert.ToInt32(tbGetal2.Text);
	}
	catch (Exception ex)
	{
		MessageBox.Show(ex.Message);
		tbGetal1.Clear();
		tbGetal2.Clear();
		tbGetal1.Focus();
		return;
	}

	optellingen gegevens = new optellingen();
	tbGetal.Text = gegevens.Optellen(x,y).ToString();
}

in plaats van de 'void' method die je had zou ik zoiets als dit doen, dit geeft een int terug (de uitkomst in dit geval).

Code:
public int Optellen(int x, int y)
{
	return x + y;
}
 
Je hoeft je uitkomst nooit te converten, de berekening zit in je class en daar komt het uit zoals je zelf wilt (of een exception als je door 0 wilt delen ooit bijvoorbeeld).

getal1 = x
getal2 = y

Code:
private void btnArray_Click(object sender, RoutedEventArgs e)
{
	int x;
	int y;

	try
	{
		x = Convert.ToInt32(tbGetal1.Text);
		y = Convert.ToInt32(tbGetal2.Text);
	}
	catch (Exception ex)
	{
		MessageBox.Show(ex.Message);
		tbGetal1.Clear();
		tbGetal2.Clear();
		tbGetal1.Focus();
		return;
	}

	optellingen gegevens = new optellingen();
	tbGetal.Text = gegevens.Optellen(x,y).ToString();
}

in plaats van de 'void' method die je had zou ik zoiets als dit doen, dit geeft een int terug (de uitkomst in dit geval).

Code:
public int Optellen(int x, int y)
{
	return x + y;
}

bedankt dit werkt
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan