[C#] Methode abbrechen?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von olup89, 7. Dezember 2012 .

Schlagworte:
  1. 7. Dezember 2012
    Methode abbrechen?

    Hi,

    ich bin grad dabei zu versuchen mir einen Taschenrechner zu programmieren.

    Nun lasse ich die Zahlen mit einer Methode einlesen, wird nun ein Buchstabe eingetippt, wird eine Messagebox angezeigt die man mit OK bestätigen kann.

    Mein Problem bzw. die Frage liegt nun darin, das wenn ich 2 Buchstaben eingebe, die Messagebox kommt, ich sag OK und dann läuft der restliche Code vom Button_click weiter und ich bekomme als Ergebnis 0.

    Ich möchte nun das wenn 2 Buchstaben eingeben werden und ich die Messagebox mit OK bestätige, das die Methode dann angehalten oder abgebrochen wird sodass mir kein Ergbniss angezeigt wird.

    Gibt es also eine Möglichkeit die Methode abzubrechen sodass ich wieder an den Anfang meines Codes komme?

    Wäre dankbar für eure Hilfe
    olup89

    p.s. bin absoluter programmieranfänger und hab den Code bis jetzt auch nur mit Hilfe von nem Buch usw. zusammenbekommen xD

    Code:
    namespace WindowsFormsApplication2
    {
     public partial class Form1 : Form
     {
     public Form1()
     {
     InitializeComponent();
     }
    
     int[] Zahlen = new int[2];
     int zahl1;
     int zahl2;
     int erg1;
    
     private void button1_Click(object sender, EventArgs e)
     {
     Eingabe();
     zahl1 = Zahlen[0];
     zahl2 = Zahlen[1];
     Addieren(zahl1, zahl2);
     label2.Text = Convert.ToString(erg1);
     
     }
    
     private void button2_Click(object sender, EventArgs e)
     {
     Eingabe();
     zahl1 = Zahlen[0];
     zahl2 = Zahlen[1];
     Subtrahieren(zahl1, zahl2);
     label2.Text = Convert.ToString(erg1);
     
    
     }
    
     private int[] Eingabe()
     {
     try
     {
     Zahlen[0] = Convert.ToInt32(textBox1.Text);
     Zahlen[1] = Convert.ToInt32(textBox2.Text);
     }
     catch (FormatException)
     {
     if (MessageBox.Show("Bitte geben Sie nur Zahlen ein", "Zahl eingeben", MessageBoxButtons.OK,MessageBoxIcon.Exclamation) == DialogResult.OK)
     {
     textBox1.Clear();
     textBox2.Clear();
     Array.Clear(Zahlen, 0, 2); 
    [CENTER][COLOR="Red"]Hier würd ich die Methode gerne abbrechen[/COLOR] [/CENTER]
     }
     
     }
     return Zahlen;
     }
    
     private double Addieren(int text1, int text2)
     {
     double erg;
     erg = text1 + text2;
     erg1 = Convert.ToInt32(erg);
     return erg1;
     }
     private double Subtrahieren(int text1, int text2)
     {
     double erg;
     erg = text1 - text2;
     erg1 = Convert.ToInt32(erg);
     return erg1;
     }
     
  2. 7. Dezember 2012
    AW: Methode abbrechen?

    Dein Code macht so relativ wenig Sinn. Du deklarierst drei globale variablen (int[] Zahlen, int zahl1, int zahl2). Das ist schonmal redundant, denn dein Array "int[] Zahlen" beinhaltet die Zahl 1 und 2. Deine Methode "private int[] Eingabe()" gibt selber ein Array zurück welches du aber nie verwendest. Wenn du prüfen möchtest, ob die Eingabe erfolgreich war, sollte die Methode "Eingabe" einen boolischen Wert zurück geben (wenn du den Rest über globale Variablen regeln möchtest). Also z.B. (ungetestet):
    Code:
    private bool Eingabe()
     {
     try
     {
     Zahlen[0] = Convert.ToInt32(textBox1.Text);
     Zahlen[1] = Convert.ToInt32(textBox2.Text);
     }
     catch (FormatException)
     {
     if (MessageBox.Show("Bitte geben Sie nur Zahlen ein", "Zahl eingeben", MessageBoxButtons.OK,MessageBoxIcon.Exclamation) == DialogResult.OK)
     {
     textBox1.Clear();
     textBox2.Clear();
     Array.Clear(Zahlen, 0, 2); 
    return false;
     }
     
     }
     return true;
     }
    Das prüfst du dann in deiner Rechnung also z.B.
    Code:
     private void button2_Click(object sender, EventArgs e)
     {
     if Eingabe() //nur wenn die Eingabe erfolgreich war wird gerechnet
    {
     zahl1 = Zahlen[0];
     zahl2 = Zahlen[1];
     Subtrahieren(zahl1, zahl2);
     label2.Text = Convert.ToString(erg1);
    }
     
    
     }
    Allgemein würde ich dir zu einem anderen Buch raten (wenn der Code da so drin war), denn das ist alles andere als ordentlicher Code. Ich habe auch "schlampig" angefangen und glaub mir, es ist schwer sich anzugewöhnen ordentlich zu programmieren. Schau dir doch mal das openbook zu c# an: Galileo Computing :: Visual C# 2010
     
    1 Person gefällt das.
  3. 8. Dezember 2012
    Zuletzt bearbeitet: 8. Dezember 2012
    AW: Methode abbrechen?

    Den Code hab ich selber zusammengewürfelt xD

    Aus dem buch hab ich nur die Befehle, genauso habe ich noch etwas Code von etwa dem gleichen Rechner von unserem Programmier Lehrer.

    Soweit funktioniert der Rechner eigentlich, also er kann rechnen^^ mich stört halt nur das wenn ich Buchstaben eingebe, das ich dann als Ergebnis 0 bekomme.


    Edit:

    Ok funktioniert so wie ich es wollte vielen Dank für die Tipps ^^
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.