2017-07-20 1 views
-1

Ich erhalte einige Benutzereingaben über eine TextBox, die dann in eine Int konvertiert wird, so dass es in weiteren Berechnungen verwendet werden kann, wenn ich auf die Schaltfläche Calculate klicke.Überprüfung, ob die Benutzereingabe ein Buchstabe ist

Ich habe überprüft, ob die TextBox leer ist, wenn die Schaltfläche Calculate geklickt wird, wenn ja, dann erscheint ein Meldungsfeld. Jetzt erkannte ich, dass ich überprüfen muss, ob es sich um eine Eingabe handelt, nicht um einen Buchstaben. Ich suche nach etwas ähnliches zu diesem

if(hoursInput.Text == "" || hoursInput.Text contains "a-z") 
{ 
    \\ handle error 
} 
else 
{ 
    \\ continue with code 
} 

EDIT:

Die Benutzereingabe in einen int im else Block umgewandelt wird, aber ich will nicht die Funktion dieser Phase von String-Umwandlung erreichen wenn der Benutzer eingegebenen Buchstaben in int enthält, weshalb ich überprüfen möchten, ob die Benutzereingabe keine Buchstaben im if Block

Antwort

0

Wie bereits erwähnt enthält, verwenden Int32.TryParse die eine bool ob oder ob nicht der Eingang zurückkehren konnte zu einer Int32 geparst werden. Einer der Parameter ist ein out und wird der Int32 werden, wenn die Eingabe analysiert werden konnte.

See: https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx

if(hoursInput.Text == "" || !Int32.TryParse(hoursInput.Text, out number)) 
{ 
\\ handle error 
} 
else 
{ 
\\ continue with code 
} 
1

Sie wirklich brauchen nichts explizit zu überprüfen:

int aNumber; 
if (!Int32.TryParse(hoursInput.Text, out aNumber)) { 
    // handle error 
} else { 
    // handle `aNumber` 
} 
Verwandte Themen