Autor Beitrag
ThomAlex
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 58

Windows 7
C# (VS08) Games via XNA (privat) oder WinForms (Schule)
BeitragVerfasst: Do 29.10.09 19:54 
Hallo
Ich möchte etwas einlesen und vermeiden, dass andere Datentypen eingelesen werden können
Ich weiß, dass da try und catch für sowas gut ist, wollte nur wissen, wie man prüft ob eine eingelesener Wert vom Typ int z.B ist

ausblenden C#-Quelltext
1:
int zahl = Convert.ToInt32(irgendeineTextbox.Text);					


es könnte ja sein, dass der User keine Zahl eingibt sondern nen Text und das würde zu einem Fehler führen, das will ich vermeiden, indem er den Fehler abfängt und stattdessen eine Fehlermeldung anzeigt:

ausblenden C#-Quelltext
1:
MessageBox.Show("Falsche Eingabe");					


bin neuer Programmierer, deshalb erwartet nicht zuviel
Danke schonmal im vorraus
MFG Alex

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Moderiert von user profile iconChristian S.: Topic aus WinForms verschoben am Do 29.10.2009 um 19:42
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: Do 29.10.09 19:58 
Für diesen Versuch gibt es vor allem int.TryParse; die gleiche Methode gibt es auch für andere Zahlen oder DateTime. Diese Methoden haben auch Überladungen, mit denen länderspezifische Eigenheiten berücksichtigt werden.

Gruß Jürgen
ThomAlex Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 58

Windows 7
C# (VS08) Games via XNA (privat) oder WinForms (Schule)
BeitragVerfasst: Do 29.10.09 21:24 
Ah okay danke, aber iwie mach ich was falsch.
Könntest du dich auf meine oben genannte Problemstellung beziehen(vermeiden, dass in die Textbox keine anderen Datentypen, sondern nur int eingelesen werden können, und per messagebox der Fehler angezeigt wird, anstatt das Programm abschmiert) und dies coden=?
Wäre sehr dankbar für die Hilfe
MFG
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 29.10.09 21:28 
user profile iconThomAlex hat folgendes geschrieben Zum zitierten Posting springen:
Ah okay danke, aber iwie mach ich was falsch.

Zeig doch mal, wie Du es versuchst. :-)

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

Windows 7
C# (VS08) Games via XNA (privat) oder WinForms (Schule)
BeitragVerfasst: Do 29.10.09 21:48 
Ja ich weiß nicht mit der int.TryParse-Methode umzugehen, mir erschliesst sich nicht wie ich damit prüfen kann ob die Eingabe ein Int32 ist.
Pseudo:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
int zahl = Convert.ToInt32(txtbox.Text);

if (zahl ist kein Integer)
{
catch ()
{
MessageBox.Show("Error");
}
}


so hier banal, das hier hab ich versucht

ausblenden C#-Quelltext
1:
2:
int zahl = Convert.ToInt32(txtLimitQuadrat.Text);
            Int32.TryParse(zahl, out int result)


und dann zeigt er schon an, dass zahl nicht in nen String konvertiert werden kann, aber das will ich ja auch nicht ich will nur checken, ob zahl Kein Integer ist um nen Absturz zu vermeiden. Vielleicht eignet sich diese Methode dafür ja nicht, und wenn doch verstehe ich die Syntax nicht.

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: Do 29.10.09 21:53 
Hallo!

Die TryParse-Methode ersetzt in Deinem Quelltext die Convert.ToInt32-Methode vollständig. Die brauchst Du dann nicht mehr.

TryParse versucht, den im ersten Parameter enthaltenen String in eine Zahl zu konvertieren. Gelingt das, steht das Ergebnis im zweiten Parameter und der Rückgabewert der Methode ist true. Gelingt das nicht, ist der Rückgabewert der Methode false.

Grüße
Christian

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


VS2015 Pro / C# & VB.Net
BeitragVerfasst: Do 29.10.09 22:07 
Hi,


so kann man das machen:

ausblenden C#-Quelltext
1:
2:
3:
Int32 zahl = 0;
Int32 intvar = 0;
if (Int32.TryParse(textBox1.Text, out intvar)){ zahl = intvar;}

_________________
Gruß
Christoph
ThomAlex Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 58

Windows 7
C# (VS08) Games via XNA (privat) oder WinForms (Schule)
BeitragVerfasst: Do 29.10.09 22:14 
Es klappt jetzt:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
int zahl = 0;
            int intvar = 0;
            if (!Int32.TryParse(txtLimitQuadrat.Text, out intvar))
            { 
                MessageBox.Show("Fehler");
            }


Danke für die Hilfe MFG > Alex

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Christoph1972
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 690
Erhaltene Danke: 16


VS2015 Pro / C# & VB.Net
BeitragVerfasst: Do 29.10.09 23:10 
Hi, benutz doch bitte mal die Bereiche für Code!


So ist das doch viel schöner:


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
int zahl = 0;
int intvar = 0;
if (!Int32.TryParse(txtLimitQuadrat.Text, out intvar))
{
  MessageBox.Show("Fehler");
}



ODER?

_________________
Gruß
Christoph
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 29.10.09 23:18 
Ich find's auf jeden Fall schön, dass ihr die unnötige Variable "zahl" immer mit copy-und-pasted. Da weiß ich doch, warum ich so ungerne fertige Quelltexte liefere :zwinker:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".