wyvernshill
Legacy Member
Ik volg informatica eerste jaar aan groepT maar ze gaan nogal te snel over het gebruik van klassen en objecten. Ook laten ze alles zien in "console" maar de oefening zelf moet dan plots in WPF gedaan worden.
Ik zit nu in de knoei, ik kan mijn constructor oproepen vanuit mijn wpf applicatie (aparte knop om de constructor te initialiseren) maar van het ogenblik dat ik via andere knoppen in mijn wpf een functie in mijn klasse moet oproepen krijg ik een foutmelding dat de naam van mijn klasse (de variable naam) niet voorkomt in de huidige context.
Wat doe ik mis ?
Hierbij wat ik tot nu toe heb in mijn "main" : (sorry hij haalt alle spaces weg
)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Practicum_7
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void bt_maakThermostaat_Click(object sender, RoutedEventArgs e)
{
if (tb_zetGewensteTemperatuur.Text != "")
{
try
{
double test = Convert.ToDouble(tb_zetGewensteTemperatuur.Text);
Thermostaat thermostaat = new Thermostaat(test);
}
catch (FormatException)
{
MessageBoxResult errorBoodschap = MessageBox.Show("Gelieve numerieke waarden in te geven.\nDetails : De indeling van de invoertekenreeks is onjuist.", "Ingavefout");
}
}
else
{
Thermostaat thermostaat = new Thermostaat();
}
}
private void bt_vraagGewensteTemperatuur_Click(object sender, RoutedEventArgs e)
{
lbl_vraagGewensteTemperatuur = thermostaat.gewensteTemperatuur; (hier zit de fout)
}
}
}
Dit is mijn klasse :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Practicum_7
{
class Thermostaat
{
//DATALEDEN
private double huidigeTemperatuur;
private double gewensteTemperatuur;
//CONSTRUCTORS
public Thermostaat()
{
gewensteTemperatuur = 0d;
Random randomTemp = new Random();
huidigeTemperatuur = Convert.ToDouble(randomTemp.Next(15, 20));
}
public Thermostaat(double gewensteTemperatuur)
{
this.gewensteTemperatuur = gewensteTemperatuur;
Random randomTemp = new Random();
huidigeTemperatuur = Convert.ToDouble(randomTemp.Next(15, 20));
}
//FUNCTIES
public double GeefHuidigeTemperatuur ()
{
return huidigeTemperatuur;
}
public double VeranderGewensteTemperatuur(double veranderGewensteTemperatuur)
{
gewensteTemperatuur = gewensteTemperatuur + veranderGewensteTemperatuur;
return gewensteTemperatuur;
}
}
}
Ik zit nu in de knoei, ik kan mijn constructor oproepen vanuit mijn wpf applicatie (aparte knop om de constructor te initialiseren) maar van het ogenblik dat ik via andere knoppen in mijn wpf een functie in mijn klasse moet oproepen krijg ik een foutmelding dat de naam van mijn klasse (de variable naam) niet voorkomt in de huidige context.
Wat doe ik mis ?
Hierbij wat ik tot nu toe heb in mijn "main" : (sorry hij haalt alle spaces weg
)using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Practicum_7
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void bt_maakThermostaat_Click(object sender, RoutedEventArgs e)
{
if (tb_zetGewensteTemperatuur.Text != "")
{
try
{
double test = Convert.ToDouble(tb_zetGewensteTemperatuur.Text);
Thermostaat thermostaat = new Thermostaat(test);
}
catch (FormatException)
{
MessageBoxResult errorBoodschap = MessageBox.Show("Gelieve numerieke waarden in te geven.\nDetails : De indeling van de invoertekenreeks is onjuist.", "Ingavefout");
}
}
else
{
Thermostaat thermostaat = new Thermostaat();
}
}
private void bt_vraagGewensteTemperatuur_Click(object sender, RoutedEventArgs e)
{
lbl_vraagGewensteTemperatuur = thermostaat.gewensteTemperatuur; (hier zit de fout)
}
}
}
Dit is mijn klasse :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Practicum_7
{
class Thermostaat
{
//DATALEDEN
private double huidigeTemperatuur;
private double gewensteTemperatuur;
//CONSTRUCTORS
public Thermostaat()
{
gewensteTemperatuur = 0d;
Random randomTemp = new Random();
huidigeTemperatuur = Convert.ToDouble(randomTemp.Next(15, 20));
}
public Thermostaat(double gewensteTemperatuur)
{
this.gewensteTemperatuur = gewensteTemperatuur;
Random randomTemp = new Random();
huidigeTemperatuur = Convert.ToDouble(randomTemp.Next(15, 20));
}
//FUNCTIES
public double GeefHuidigeTemperatuur ()
{
return huidigeTemperatuur;
}
public double VeranderGewensteTemperatuur(double veranderGewensteTemperatuur)
{
gewensteTemperatuur = gewensteTemperatuur + veranderGewensteTemperatuur;
return gewensteTemperatuur;
}
}
}
