Ich versuche einen einfachen Taschenrechner zu programmieren, aber ich lese und höre verschiedene Tutorials. Ich sollte der OOP-Methode folgen. Anstatt meinen gesamten Code in der Knopfklick-Methode zu haben, dachte ich, der logische Ansatz bestünde darin, alle Berechnungen in einer Form zu haben, z. add divide, percentage und die Klasse form1 übergeben die Variablenwerte an die Berechnungsklasse, in der die gesamte Logik vorkommt. Aber aus irgendeinem Grund ist Total immer gleich der Nummer, die ich zuletzt eingegeben habe und nicht die Summe von Summe + Summe. Jede Hilfe wird geschätzt.Eine Variable an eine andere Klasse übergeben, eine Berechnung durchführen und dann zurückgeben
namespace calculator
{
public partial class calculator : Form
{
public calculator()
{
InitializeComponent();
}
private void btnInput_Click(object sender, EventArgs e)
{
Calculations calculations = new Calculations();
calculations.total = Convert.ToInt32(txtPrice.Text);
calculations.GetPrice();
displayBox.Text = Convert.ToString(calculations.total);
}
}
}
Berechnungen Klasse
class Calculations
{
public int total;
public int GetPrice()
{
total =+ total;
//See whats being stored in total
String totalCheck = Convert.ToString(total);
System.Windows.Forms.MessageBox.Show(totalCheck);
return total;
}
}
Sie erstellen eine neue "Calculations" -Klasse jedes Mal, wenn auf die Schaltfläche geklickt wird. Es gibt also keine Möglichkeit, dass der vorherige Wert einbezogen wird. Nicht, dass es irgendwie wichtig wäre, weil Sie auch das 'total'-Feld jedes Mal direkt von der Benutzereingabe aus setzen, was den vorherigen Wert überschreiben würde, selbst wenn Sie eine einzelne Instanz herum behalten würden. Das Design ist sowieso nicht sehr nützlich, aber wenn Sie diesen Pfad fortsetzen möchten, sollten Sie ein Feld für die laufende Summe beibehalten und Methoden für die Operationen angeben, in denen Sie den Wert addieren, subtrahieren, teilen, multiplizieren usw . –
Hallo Peter. Könntest du etwas mehr darüber erzählen, was genau du berechnen willst? Ist die von Ihnen hier angegebene Berechnungsklasse vollständig? Weil ich nicht sehen kann, warum das überhaupt kompilieren würde; Sie verwenden "calculation.totalPrice" in Ihrem Taschenrechnerformular, aber dieses Attribut existiert nicht in der gebuchten Berechnungsklasse. – rqnn
Hallo, das ist der komplette Code, ich habe nur versucht, das funktioniert, bevor ich mehr Button hinzugefügt habe. Es fehlt nur noch die Verwendung von Systemanweisungen. Gesamtpreis sollte nur total sein. –