Entwickler-Ecke

C# - Die Sprache - [2.0] Rechner label1.toString


sunxp - Fr 25.05.07 20:24
Titel: [2.0] Rechner label1.toString

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
private void button10_Click(object sender, EventArgs e)
        {
            double.Parse(textBox2.Text);
            double.Parse(textBox4.Text);
            
            int z1;
            int z2;
            int summe;

            z1 = Convert.ToInt16(textBox2.Text);
            z2 = Convert.ToInt16(textBox4.Text);

            summe = z1 * z2;

            //????


wie schreibe ich jetzt das die summe im label1 ausgegeben wird?

danke

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - Fr 25.05.07 20:33

Auch ein Label besitzt eine Text-Eigenschaft. Und der Double-Typ hat die Methode ToString().

Was sollen eigenlicht die ersten beiden Zeilen der Methode? :gruebel:


sunxp - Fr 25.05.07 20:47


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
private void button10_Click(object sender, EventArgs e)
        {            
            int z1;
            int z2;
            int summe;

            z1 = Convert.ToInt16(textBox2.Text);
            z2 = Convert.ToInt16(textBox4.Text);
            
             

            summe = z1 * z2;

            label1.Text = ToString(summe);


so irgendwie????

warn für gar nichts

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - Fr 25.05.07 20:52

user profile iconsunxp hat folgendes geschrieben:
so irgendwie????
Ist es zuviel verlangt, dass Du selber ausprobierst, ob das funktioniert? :gruebel:

Wir ruft man denn Methoden von Objekten auf?


Ach ja, zwei Sachen noch:
(1) Spendiere diesem Topic doch bitte einen Titel, mehr über seinen Inhalt aussagt. Einfach bei Deinem ersten Posting auf user defined image oder user defined image klicken und den Titel ändern.

(2) Benutze für Quelltext bitte die CS-Tags, damit er im Forum korrekt dargestellt wird. Siehst dann beim Ändern des Titel im ersten Posting, wie man die benutzt, ich habe sie für Dich eingefügt.


sunxp - Fr 25.05.07 20:56

nein funktioniert nicht!

Fehler 1 Keine Überladung für die ToString-Methode nimmt 1 Argumente an.


Christian S. - Fr 25.05.07 21:02

Methoden zu Objekten rufst Du mittels deinObjekt.DieMethode() auf. C# ist ja vollständig objektorientiert, ein alleinstehendes DieMethode(...) gibt es also nicht.

Entsprechend musst Du dann auch die ToString-Methode Deiner Zahl aufrufen (die ich oben fälschlicherweise als Double bezeichnet habe, ist ja hier ein int).


sunxp - Fr 25.05.07 21:11


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
private void button10_Click(object sender, EventArgs e)
        {            
            int z1;
            int z2;
            int summe;

            z1 = Convert.ToInt16(textBox2.Text);
            z2 = Convert.ToInt16(textBox4.Text);
            
            summe = z1 * z2;
            
            //label1.ToString(summe);
            
            label1.ToString(summe);
            
            //????
        }


wieder der gleiche fehler:
Fehler 1 Keine Überladung für die ToString-Methode nimmt 1 Argumente an.

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - Fr 25.05.07 21:15

Liest Du eigentlich, was ich schreibe?

Ich schrieb, dass Du die ToString()-Methode Deiner Zahl aufrufen musst. Was ist Deine Zahl? Doch die Summe, oder? Und wie man die ToString()-Methode eines Objektes (hier der Summe) aufruft, habe ich oben erklärt.

ToString() braucht dann auch gar keine Parameter mehr. Das Ergebnis weist Du dann der Text-Eigenschaft des Labels zu.



Würdest Du dann bitte noch den Titel des Threads ändern, wie ich es Dir sagte? Und die C#-Tags benutzen? Ich habe ein bisschen den Eindruck, zu einer Wand zu sprechen ...


sunxp - Fr 25.05.07 21:24

geht aber trotzdem nicht!!
habe ich schon prob.

double.ToString gibts net!!


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
private void button10_Click(object sender, EventArgs e)
        {            
            int z1;
            int z2;
            int summe;

            z1 = Convert.ToInt16(textBox2.Text);
            z2 = Convert.ToInt16(textBox4.Text);
            
            summe = z1 * z2;
                     
            label1.ToString(summe);
            
            ToString(summe);
            
        }


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - Fr 25.05.07 21:30

Du hast nochmal das selbe geschrieben. Wie sollte es jetzt funktionieren?

Womit wir wieder beim Lesen sind:
user profile iconChristian S. hat folgendes geschrieben:
Liest Du eigentlich, was ich schreibe?

Ich schrieb, dass Du die ToString()-Methode Deiner Zahl aufrufen musst. Was ist Deine Zahl? Doch die Summe, oder? Und wie man die ToString()-Methode eines Objektes (hier der Summe) aufruft, habe ich oben erklärt.

ToString() braucht dann auch gar keine Parameter mehr. Das Ergebnis weist Du dann der Text-Eigenschaft des Labels zu.



Würdest Du dann bitte noch den Titel des Threads ändern, wie ich es Dir sagte? Und die C#-Tags benutzen? Ich habe ein bisschen den Eindruck, zu einer Wand zu sprechen ...


Double-Objekte haben durchaus eine ToString-Methode. Aber dass Du hier keine hast und ich mich da vertan habe, habe ich oben ja auch schon geschrieben ...

Ich weiß ja nicht, ob Du das hier jetzt liest oder auch ignorierst, aber um das Drama zu beenden:

C#-Quelltext
1:
label1.Text = summe.ToString();                    


Und bitte such Dir ein gutes Grundlagen-Tutorial. Ein solches kann dieses Forum nicht ersetzen. Google mal nach "Galileo C#", da sollte es ein komplettes Onlinebuch geben.


sunxp - Fr 25.05.07 21:35

Danke funktioniert endlich

DANKE!!!!!!!


JüTho - Sa 26.05.07 11:04

user profile iconsunxp hat folgendes geschrieben:
Danke funktioniert endlich

Das wundert mich doch sehr, dass es funktioniert; in allen Code-Beispielen wird immer die Summe mit dem Mal-Zeichen "erzeugt". Vielleicht müsste man den Wunsch "bitte lesen" noch etwas ausweiten.

Der Vollständigkeit halber: Hier ist das Galileo OpenBook C# [http://www.galileocomputing.de/openbook/visual_csharp/] zu finden.

Jürgen


Christian S. - Sa 26.05.07 11:10

Hehe, stimmt, da hatte ich gar nicht drauf geachtet :lol:


Robert_G - Sa 26.05.07 12:09

user profile iconChristian S. hat folgendes geschrieben:
Hehe, stimmt, da hatte ich gar nicht drauf geachtet :lol:
Ganz zu schweigen davon, dass die int (=Int32)-Werte aus einem Int16 besetzt werden...


Christian S. - Sa 26.05.07 12:10

Das ist ja erstmal kein Problem. ;-)


MysteryEskimo - Mo 04.06.07 20:52
Titel: Idee
Wie wärs damit:
label1.Text = Convert.ToString(summe);


JüTho - Mo 04.06.07 21:11
Titel: Re: Idee
user profile iconMysteryEskimo hat folgendes geschrieben:
Wie wärs damit:
label1.Text = Convert.ToString(summe);

Die Methode ToString() ist eine Standardmethode, die es bei jeder Klasse gibt. Sofern keine besonderen Formatierungen zu beachten sind (wie z.B. bei Datum/Zeit), bietet es sich also an, grundsätzliche diese Methode zu verwenden.

Außerdem sagt die Doku:
Zitat:
Convert.ToString-Methode (Int32)
Diese Implementierung ist mit Int32.ToString identisch.

Jürgen