Es gibt viele Möglichkeiten, in einen int zu konvertieren, viel hängt davon ab, was Ihre Quelle ist.
Das Wichtigste ist die Fehlerkontrolle. Keine der Methoden ist für sich allein genommen narrensicher, so dass Sie entscheiden müssen, wie Sie vorgehen wollen.
Casting mit (int), Konvertierung mit Convert.ToInt32(), Parsing mit int.Parse() können Ausnahmen wie InvalidCastException, FormatException und OverflowException erzeugen und sollten try/catch verwenden, um fehlgeschlagene Ergebnisse zu behandeln.
Das Parsen mit int.TryParse() liefert ein true/false-Ergebnis, ob das Parsen erfolgreich war, und setzt im Erfolgsfall den Wert auf den im Funktionsaufruf angegebenen out-Parameter.
Wenn Sie wirklich versuchen, ein beliebiges Objekt zu nehmen und es in eine int zu verwandeln, sind Sie wahrscheinlich am besten mit Convert.ToInt32 wie:
public void TestFunction(object input)
try {
int value = Convert.ToInt32(input);
SomeOtherFunction(value);
}
catch (Exception ex) {
Console.WriteLine("Could not determine integer value");
}
}
Eine andere Möglichkeit wäre, sich darauf zu verlassen, dass das Objekt einen brauchbaren Wert in .ToString() erzeugt, wie z.B.:
public void TestFunction(object input)
try {
int value = int.Parse(input.ToString());
SomeOtherFunction(value);
}
catch (Exception ex) {
Console.WriteLine("Could not determine integer value");
}
}