Laden...

Sicheres Konvertieren und Vergleichen der Werte

Erstellt von itranger vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.085 Views
I
itranger Themenstarter:in
44 Beiträge seit 2016
vor 7 Jahren
Sicheres Konvertieren und Vergleichen der Werte

Hallo,


int i = 1;

ich habe eine Variable sowie eine Textbox. Nun möchte ich den Inhalt der Textbox mit dem Integer vergleichen, d.h. in der Textbox darf man nur eine Zahl eingeben, sonstiges wie Leerzeichen und Buchstaben sollen abgelehnt werden.

Ich habe dazu eine if-Abfrage erstellt und habe folgendes reingeschrieben:


if (Convert.ToInt32(textbox1.Text) < i {
MessageBox.Show(Fall1)
}
if (Convert.ToInt32(textbox1.Text) == i) {
MessageBox.Show(Richtig);
}

Würde man nun ein Buchstaben eingeben, würde das Programm sofort abstürzen. Ich möchte, aber, dass das Programm eine Warnung ausgibt. Dazu habe ich vieles probiert wie z.B. die if Abfragen zusammen zu verknüpfen und dann am Ende ein Else mit der Ausgabe, aber da schon am Anfang der if Abrage probiert wird, die Textbox z.B. (" ") zu konvertieren, erscheint eine Fehlermeldung.

Ich zweifele langsam. TryParse wäre meine andere Idee, aber wie soll ich am Ende einen Hinweis ausgeben, wenn es die Textbox keinen nummerischen Wert hat.

MfG

16.807 Beiträge seit 2008
vor 7 Jahren

Verwende die Methoden Int32.TryParse etc.
Diese geben entsprechend ein false zurück, wenn der string nicht ein solcher Datentyp ist, wie er sein sollte.
Steht auch in der Dokumentation inkl. Beispielen 😉

I
itranger Themenstarter:in
44 Beiträge seit 2016
vor 7 Jahren

int i = 1;
int value;


if (Int32.TryParse(textbox1.Text, out value) && value < i) {
MessageBox.Show(Fall1)
} else {
MessageBox.Show("Falsch");
}

if (Int32.TryParse(textbox1.Text, out value) && value == i) {
MessageBox.Show("Richtig");
} else {
MessageBox.Show("Falsch");
}

Da macht er irgendwas falsch. Die Fallunterscheidung wird nicht wirklich durchgeführt.

U
1.688 Beiträge seit 2007
vor 7 Jahren

Da macht er irgendwas falsch.

Das ist keine sinnvolle Beschreibung. Was gibst Du ein, was erwartest Du, was passiert?