Für eine Benutzereingabe, die eine ganze Zahl enthalten soll, ist int.TryParse ein geeigneter Ausgangspunkt. Prüfe den booleschen Rückgabewert, bevor du die Ergebnisvariable verwendest. Eine erfolgreiche Umwandlung sagt außerdem noch nicht, ob die Zahl in deiner Anwendung zulässig ist.
Beispiel: eine Teilnehmerzahl einlesen
string eingabe = "12";
if (int.TryParse(eingabe, out int anzahl) && anzahl > 0)
{
Console.WriteLine($"Teilnehmer: {anzahl}");
}
else
{
Console.WriteLine("Bitte eine positive ganze Zahl eingeben.");
}
Hier werden zwei Fragen getrennt beantwortet: Lässt sich der Text umwandeln? Und ist das Ergebnis positiv? Für "0" gelingt die Umwandlung, die zweite Bedingung ist aber falsch.
Was passiert bei ungültigem Text?
Bei der üblichen String-Überladung liefert TryParse für einen nicht passenden Text, null oder einen Wert außerhalb des Int32-Bereichs false. Der Ergebniswert ist dabei 0. Dieser allein unterscheidet also nicht zwischen einer gültigen Null und einem Fehler. int.Parse kann bei ungültigen Eingaben dagegen Ausnahmen auslösen.
Die Standardumwandlung akzeptiert beispielsweise Vorzeichen und umgebenden Leerraum. Dezimalzahlen und Tausendertrennzeichen verlangen eine bewusste Formatentscheidung. Details zu Überladungen und Zahlenformaten stehen in der Microsoft-Dokumentation zu Int32.TryParse.
Eigene Testfälle für das Formular
| Eingabe | Erwartung im Beispiel |
|---|---|
| 12 | Teilnehmer: 12 |
| 0 | Fehlermeldung |
| -4 | Fehlermeldung |
| zwölf | Fehlermeldung |
| 12 Personen | Fehlermeldung |
Ein Feld für Teilnehmer sollte keinen beliebigen Text stillschweigend bereinigen. Aus „12 Personen“ automatisch 12 zu extrahieren wäre eine zusätzliche Regel, die klar definiert werden müsste.
Eine Liste bearbeiten
string liste = "3;8;falsch;15";
foreach (string feld in liste.Split(';'))
{
if (int.TryParse(feld, out int wert))
Console.WriteLine(wert * 2);
else
Console.WriteLine($"Ungültiges Feld: {feld}");
}
Die vorgesehenen Ausgaben sind 6, 16, „Ungültiges Feld: falsch“ und 30. Überlege für deinen Import, ob einzelne Fehler erlaubt sind oder die ganze Zeile zurückgewiesen werden muss. Die Beispiele zeigen den Kontrollfluss; sie sind kein vollständiger CSV-Parser.
Passend dazu
Erstveröffentlichung: 20.02.2024. Redaktionell überarbeitet im September 2026.