Hallo und
eine eigene Klasse für die Fehlerprüfung halte ich für überdimensioniert; aber wenn es die Aufgabenstellung erfordert...
Meiner Ansicht nach sollte diese Klasse nur
static-Methoden haben: Es geht nur darum, dass eine Eingabe geprüft werden soll und ein Prüfungsergebnis zurückgegeben wird; davor und danach hat diese Klasse keinerlei Bedeutung. (Oder irre ich mich?)
Du kannst das also vereinfachen, zumal es eine passende int- bzw. double-Methode schon gibt. Ausdrückliches Lob dafür, dass Du schon Parse verwendest und nicht Convert.ToXxx; Kritik daran, dass Du Dich nicht zwischen bool und int/double als Rückgabe entscheiden kannst.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| public static int GetInteger(string input) { int result = 0; if (! Int32.TryParse(input, out result) || result < 0) result = 0; return result; } |
Der Vorteil von
TryParse ist, dass eine Exception vermieden wird und ein bool-Wert als Prüfungsergebnis gegeben wird; damit kannst Du es mit der zweiten Eingabeprüfung verknüpfen. Genauso geht es auch mit double.
Warnung: Man könnte versucht sein, beides mit einer
generischen Methode zusammenzufassen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| public static T GetValue<T>(string input) : where T ??? { T result; if (! T.TryParse(input, out result) || result < 0) result = 0; return result; } |
Das funktioniert aber nicht, weil es keinen gemeinsamen Typ IArithmetic gibt und weil geprüft werden müsste, ob der Typ T auch die TryParse-Methode kennt.
Ob Du weitere Fragen hast, kann ich aus Deinem Beitrag nicht erkennen. Jürgen