Entwickler-Ecke

Basistechnologien - sämtliche datentypen in einer Textbox ausgeben


BLR - So 20.12.09 19:42
Titel: sämtliche datentypen in einer Textbox ausgeben
hallo =)
hab angefangen mich mit c# zu beschäftigen und dabei macht mir ein einafch ding kopfschmerzen....

hab festgestellt, dass man in einer textbox nur string ausgeben kann
also mach ich:

C#-Quelltext
1:
textbox.text = intVariable.ToString();                    


soo...wenn ich nun aber in einer textbox eine ZAHL eingebe um mit ihr weiter rechnen zu können
geht das dann so nicht: intZahl = txtbox.text

ich will einfach ne zahl eingeben, sie in eine integer variable abspeichern um damit rechnen zu können
wie mach ich das in c-sharp???
danke

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


Christian S. - So 20.12.09 20:09

Hallo und :welcome:!

Wie ToString eine Umwandlung von etwas in einen String ist, musst Du, bevor Du damit rechnen kannst, einen String auch wieder in eine Zahle umwandeln.

Dazu bietet sich, bei einem Integer-Wert folgendes an:

C#-Quelltext
1:
2:
3:
4:
5:
int derWert;
if (int.TryParse(txtbox.Text, out derWert))
{
   //... Arbeit mit dem Wert
}


Diese Funktion funktionert so: Es wird versucht, den Text, den man im ersten Parameter übergibt, in eine Zahl umzuwandeln. Die wird dann in den zweiten Parameter (hier als: derWert) hineingeschrieben, sodass man sie benutzen kann.

Die Funktion hat aber auch noch einen Rückgabewert: der ist true, wenn die Umwandlung erfolgreich war und false, wenn nicht. Den obigen Quelltext kann man also in Sprache so formulieren: "Wenn die Umwandlung von txtbox.Text erfolgreich war, dann benutze den Zahlwert, der nun in 'derWert' drin steht."

Grüße
Christian


BLR - So 20.12.09 21:24

danke dir für deine antwort
also um überhaupt weiterarbeiten zu können muss ich jedesmal so ne if-anweisung schreiben?


ähhmm....wo ist den dieser rückgabewert der funktion zu sehen???(um damit vielleicht noch was zu abzufangen)


Christian S. - So 20.12.09 21:27

Was meinst Du mit "wo der Rückgabewert zu sehen ist". Du benutzt den Rückgabewert wie bei jeder anderen Funktion auch :nixweiss:


jaenicke - So 20.12.09 21:31

user profile iconBLR hat folgendes geschrieben Zum zitierten Posting springen:
ähhmm....wo ist den dieser rückgabewert der funktion zu sehen???(um damit vielleicht noch was zu abzufangen)
Falls du damit meinst wo der umgewandelte Wert ist:
Der steht in derWert, der Rückgabewert gibt ja wie user profile iconChristian schon sagte an, ob die Umwandlung erfolgreich war.


JüTho - So 20.12.09 21:40

Hallo und ebenfalls :welcome:

user profile iconBLR hat folgendes geschrieben Zum zitierten Posting springen:
ähhmm....wo ist den dieser rückgabewert der funktion zu sehen???(um damit vielleicht noch was zu abzufangen)

Und falls du true/false als Rückgabewert der TryParse-Methode meinst, dann steckt der als Ergebnis in der if-Abfrage.

So etwas ist nämlich nicht üblich:

C#-Quelltext
1:
if (int.TryParse(txtbox.Text, out derWert) == true)                    

Bei if wird geprüft, ob ein Wert true ist; es muss nicht gefragt werden, ob ein Wert, der true ist, gleich true ist. (Mit == bzw. != würde die Abfrage auch unsicher ablaufen, aber das führt jetzt zu weit.)

Übrigens spricht man in C# (.NET allgemein?) einheitlich von Methoden und unterscheidet nicht zwischen Funktionen und Prozeduren.

Als Zusatzhinweis zur Ausgangsfrage: .NET und C# achten genau auf die verwendeten Datentypen. Wenn unterschiedliche Typen zusammen verwendet werden sollen, muss es mindestens eine implizite Konvertierung geben (z.B. dass jede ganze Zahl auch als Dezimalzahl verarbeitet werden kann), sehr oft wird aber eine explizite Konvertierung benötigt - mit ToString oder as oder (int) oder TryParse oder was es sonst noch gibt.

Gruß Jürgen


BLR - Mo 21.12.09 00:08

danke, es hat geklappt.....

ist mein fehler....
hab eben das mit dem rückgabewert einer funktion verwechselt
also z.b wenn eine funktion verbinden soll und es erfolgreich ist
dann: funktion = true

danke euch =)
es kommen sicherlich noch paar andere fragen dazu^^