Ich habe Probleme die Variable zu übergeben ...



  • mh ich hab sie einfach nur nicht benutzt weil ich es nach dem motto "hauptsache es funktioniert" probiert habe, du darfst mir den teil mit den parametern gerne machen oder mir sagen was ich damit machen soll um es zu verbessern.

    edit: Den teil mit dem

    AdditionFu.Wert2 = int.Parse(textBox1.Text);
    

    raffe ich ehrlich gesagt nicht... was ist dieses int.Parse? Da ich nicht genau weiss was es ist weiss ich auch nicht wo es hin soll ... sind parse heisst ja eigl durchkämmen => durchsucht die textbox nach int werten ???

    edit2: übrigens mit deinen änderungen (int.parser teil noch nicht eingearbeitet) funktioniert das programm noch immer nicht^^. Wie gesagt der Fehler kommt erst nach dem man das programm gestartet hat...



  • int.Parse wandelt einfach nur in int um geht auch mit double... hm wenns immernoch nich klappt weiß ich es nicht vllt könntest du den genauen fehler posten



  • der fehler geschieht halt immer zur laufzeit ... du kannst den source ja mal starten und einfach 1+1 oder so rechnen ... dann wirst du sehen was ich meine, ich versuche den genauen fehlercode mal mit try und catch zu kriegen

    EDIT : ok er gibt den Fehler "Input string was not in a correct format" das kann ich wsl alleine schaffen und setze mich da auch gleic ran 🙂 Anregungen dürfen trotzdem gerne gepostet werden 🙂



  • ähm ok ... was ist daran falsch ? Ich habe es nicht lösen können 😕 allerdngs hatte ich auch nicht so viel zeit dafür...

    Könnte mir jmd erklären was daran falsch ist und es korrigieren ?



  • public void addition(object sender, EventArgs e)
            { 
                AdditionFu = new stdOperatoren();
                AdditionFu.Wert1 = int.Parse(textBox1.Text);
            }
    
            public void Calculate(object sender, EventArgs e)
            { 
                AdditionFu.Wert2 = int.Parse(textBox1.Text);
                MessageBox.Show(AdditionFu.calci().ToString());
            }
    

    also erst mal ist ein Fehler dass du additionfu erst bei calculate erstellst aber in addition schon zuweist und falls du wirklich diese Fehlermeldung mit falsches string format so bekommst ist i-was drum herum falsch (falsche eingabe etc.)



  • Ich kriege es einfach nicht hin, hier der bisher ganze code... WIESO gibt er mir den Fehler aus ? Ich verstehe es gaaaaarnicht!

    Form.cs

    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;
    using TaschenRechner;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private stdOperatoren AdditionFu;
    
                private void Digit1(object sender, EventArgs e)
                {
                    textBox1.Text += "1";
    
                }
    
                private void Digit2(object sender, EventArgs e)
                {
                    textBox1.Text += "2";
                }
    
                private void Digit3(object sender, EventArgs e)
                {
                    textBox1.Text += "3";
                }
    
                private void Digit4(object sender, EventArgs e)
                {
                    textBox1.Text += "4";
                }
    
                private void Digit5(object sender, EventArgs e)
                {
                    textBox1.Text += "5";
                }
    
                private void Digit6(object sender, EventArgs e)
                {
                    textBox1.Text += "6";
                }
    
                private void Digit7(object sender, EventArgs e)
                {
                    textBox1.Text += "7";
    
                }
    
                private void Digit8(object sender, EventArgs e)
                {
                    textBox1.Text += "8";
                }
    
                private void Digit9(object sender, EventArgs e)
                {
                    textBox1.Text += "9";
                }
    
                private void Digit0(object sender, EventArgs e)
                {
                    textBox1.Text += "0";
                }
    
                public void Calculate(object sender, EventArgs e)
                {
                    AdditionFu = new stdOperatoren();
    
                    AdditionFu.Wert2 = int.Parse(textBox1.Text);
    
                    MessageBox.Show(AdditionFu.calci().ToString());
                }
    
                public void addition(object sender, EventArgs e)
                {
                    try
                    {
                        textBox1.Text = "";
                        AdditionFu.Wert1 = int.Parse(textBox1.Text);
    
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Fehler");
                    }
    
                }
    
          }
    }
    

    Program.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        static class Program
        {
            /// <summary>
            /// Der Haupteinstiegspunkt für die Anwendung.
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
    
            }
    
        }
    }
    

    stdOperatoren.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace TaschenRechner
    {
        class stdOperatoren
        {
            public int Wert1;
            public int Wert2;
    
            public int calci()
            {
                int result;
                result = Wert1 + Wert2;
                return (result);
            }
    
        }
    }
    


  • ich hab dir doch schon geschrieben dass deine klasse noch nicht besteht in addition und du schon was zuweist, was nicht möglich ist und die methoden wie sie richtig wären hab ich auch schon gepostet 😕



  • µBx schrieb:

    WIESO gibt er mir den Fehler aus ?

    Ich habe die Lösung.

    Disclaimer: If you do not find any usefullness in this answer it might be caused by the question is the first place.

    Aber um nicht ganz Arsch zu sein heute, hier ein Hinweis zusätzlich zu dem was Siraja schon gesagt hat:

    try
    {
        textBox1.Text = "";                    
        AdditionFu.Wert1 = int.Parse(textBox1.Text);
    
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "Fehler");
    }
    

    Achte mal auf die Reihenfolge von löschen des Inhalts und Parsen des Inhalts...



  • oh ja das hab ich nicht beachtet, das spuckt natürlich nen string input fehler aus ^^



  • ok sorry loks 😞

    es funktioniert mittlerweile halbwegs... es gab noch den fehler "Object reference not set to an instance of an object" aber das lag auch an der falschen reihenfolge... naja nun gibt er mir in der messagebox aber auch nur die zuletzt eingegebene Zahl anstatt das Ergebnis der Addition aus... ich versuche mich weiterhin dran 🙂


Anmelden zum Antworten