C# Problem

  • Hi

    Ich versuche mich gerade dabei einen kleinen Taschenrechner in Visual C# zu schreiben, leider habe ich da jetzt ein Convertierungsproblem, da ich immer die Meldung erhalte, dass int nicht in string konvertiert werden kann

    hier mein code

    Code
    textBox3.Text = (Convert.ToInt16(textBox1.Text) + Convert.ToInt16(textBox2.Text)).toString;

    kann mir da mal einer helfen

    mfg.Simon

  • Dein Aufruf von .ToString ist falsch, .ToString ist eine funktion also musst du sie auch wie eine aufrufen:

    Code
    textBox3.Text = (Convert.ToInt16(textBox1.Text) + Convert.ToInt16(textBox2.Text)).ToString();
  • Dann wird in textBox3 aber eine Stringverknüpfung ausgegeben, kein Additionsergebnis.


    Warum? Die toString-Methode wird doch auf dem Ergebnis aufgerufen und nicht auf den Operanden. Da die Umwandlung von Int in String implizit erfolgt, kann man toString auch weglassen ;)
    ( ToInt(string) + (ToInt(string) ).toString()

  • Eijeijei ... jetzt wird's peinlich.
    Ich weiss nicht, ob Sortoc seinen Post gestern noch kurzfristig editiert hat aber irgendwas kam mir daran komisch vor. Zum testen hab ich den Code dann sicherheitshalber mal ausgeführt. Ergebnis - die vermutete Stringvrknüpfung.

    Hab die Datei jetzt nochmal hergestellt, darin fehlen ein paar Klammern:

    Code
    textBox3.Text = Convert.ToInt16(textBox1.Text) + Convert.ToInt16(textBox2.Text).ToString();


    Da wird's natürlich nichts mehr mit der Addition. Ob Sortoc das jetzt vorher so in seinem Post so hatte oder ich beim tippen einfach etwas verpeilt war - keine Ahnung. So wie er es jetzt in seinem Post hat, funktioniert's natürlich einwandfrei.

    Ohne ToString() würd's allerdings einen Fehler werfen, denn eine implizite Konvertierung von int zu string ist nicht möglich.

  • Öhm Editiert habe ich am Code nichts war mir auch ohne testen sicher das es so geht. Und jetzt hab ichs mal eben getestet, der Code macht was er soll. Vielleicht hast du die Klammer auch übersehen und es ist klar das der von dir zuletzt gepostete Code nicht geht "string = int + string" funktioniert halt nicht^^

  • Dann war ich gestern halt einfach etwas zu flüchtig. Tut mir leid.
    Ist mir nur ein Rätsel, wie ich überhaupt darauf gekommen bin, das es so nicht funktionieren könnte. ?(
    Na egal. Beim nächsten mal nehm ich noch einen kräftigen Schluck aus der Kaffetasse, bevor ich solche Behauptungen aufstelle.

  • i2c: Ich dachte, dass C# schlau genug ist. Int2String automatisch durchzuführen. Naja, noch ein Unterschied zu Java, da funktioniert das meistens.