Autor Beitrag
BLR
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: So 20.12.09 19:42 
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:
ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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:
ausblenden 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

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
BLR Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: 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^^