Hallo Zusammen,
ich bin gerade dabei mir das Verständnis an der OOP im Zusammenhang mit GUIs mit C# beizubringen.
Dafür habe ich ein einfaches Rechnerprogramm geschrieben, welches ganz simpel Brüche erst mal kürzen soll.
In meiner GUI sind zwei Textboxen zur Eingabe von Zähler und Nenner sowie zwei Buttons zum Kürzen des Bruchs und Beenden der GUI dargestellt.
Die Klasse Bruch habe ich bereits geschrieben (siehe unten Code),
Mein Problem ist: Wie soll nun die Übergabe der Werte an die Klasse über das Form und umgekehrt stattfinden.
Ich dachte dabei an die Implementierung eines Konstruktor, welche die Parameter an die Klasse Bruch übergibt, aber das funktioniert nicht so ganz.
Kann mir da jemand bitte weiterhelfen. Vielen Dank!
gruß, akki
ich bin gerade dabei mir das Verständnis an der OOP im Zusammenhang mit GUIs mit C# beizubringen.
Dafür habe ich ein einfaches Rechnerprogramm geschrieben, welches ganz simpel Brüche erst mal kürzen soll.
In meiner GUI sind zwei Textboxen zur Eingabe von Zähler und Nenner sowie zwei Buttons zum Kürzen des Bruchs und Beenden der GUI dargestellt.
Die Klasse Bruch habe ich bereits geschrieben (siehe unten Code),
Mein Problem ist: Wie soll nun die Übergabe der Werte an die Klasse über das Form und umgekehrt stattfinden.
Ich dachte dabei an die Implementierung eines Konstruktor, welche die Parameter an die Klasse Bruch übergibt, aber das funktioniert nicht so ganz.
Kann mir da jemand bitte weiterhelfen. Vielen Dank!
gruß, akki
C#-Quellcode
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace Rechner
- {
- public class Bruch
- {
- int zaehler,
- nenner = 1;
- public Bruch(int zaehler, int nenner); // Fehler 1 "Rechner.Bruch.Bruch(int, int)" ist nicht als abstrakt, extern oder partiell gekennzeichnet und muss daher einen Text deklarieren.
- //{
- //}
- public int Zaehler
- {
- get
- {
- return zaehler;
- }
- set
- {
- zaehler = value;
- }
- }
- public int Nenner
- {
- get
- {
- return nenner;
- }
- set
- {
- if (value != 0)
- nenner = value;
- }
- }
- public void Kuerze()
- {
- // größten gemeinsamen Teiler mit dem Euklidischen Algorithmus
- if (zaehler != 0)
- {
- int ggt = 0;
- int az = Math.Abs(zaehler);
- int an = Math.Abs(nenner);
- do {
- if (az == an)
- ggt = az;
- else
- if (az > an)
- az = az - an;
- else
- an = an - az;
- } while (ggt == 0);
- zaehler /= ggt;
- nenner /= ggt;
- }
- }
- public void Addiere(Bruch b)
- {
- zaehler = zaehler*b.nenner + b.zaehler*nenner;
- nenner = nenner*b.nenner;
- Kuerze();
- }
- }
- }
C#-Quellcode
- // Hier beginnt die Form
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- namespace Rechner
- {
- public partial class MainForm : Form
- {
- public MainForm()
- {
- InitializeComponent();
- }
- private void kuerzenButton_Click(object sender, EventArgs e)
- {
- int zaehler,
- nenner = 1;
- zaehler = Convert.ToInt32(zaehlerTextBox.Text);
- nenner = Convert.ToInt32(nennerTextBox.Text);
- Bruch obj1 = new Bruch
- (
- zaehler,
- nenner
- );
- }
- private void beendenButton_Click(object sender, EventArgs e)
- {
- }
- }
- }
C#-Quellcode
- // Main : Muss noch bearbeitet werden
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Windows.Forms;
- namespace Rechner
- {
- static class Program
- {
- /// <summary>
- /// Der Haupteinstiegspunkt für die Anwendung.
- /// </summary>
- [STAThread]
- static void Main()
- {
- Application.EnableVisualStyles();
- Application.SetCompatibleTextRenderingDefault(false);
- Application.Run(new MainForm());
- // Bruch b1 = new Bruch(zaehler, nenner), b2 = new Bruch(zaehler, nenner);
- //b1.Kuerze();
- //b2.Kuerze();
- }
- }
- }