Hi
//Über die Klasse Convert
int a = Convert.ToInt32(Console.ReadLine);
Wie mein Vorredner schon gesagt hat: ist blos ein Überbleibsel alter Versionen. Hab ich auch noch nie verwendet.
//Über die alte C-Variante
double b = (double)Console.ReadLine;
Funktionier NICHT, da es nur Konvertieren kann, wofür schon Konvertierungsoperatoren in den Klassen double oder string existieren. zB Anwendbar bei int zu double oder andersrum oder bei Basisklasse zu abgeleiteter Klasse.
Sollte diese Konvertierung fehlschlagen (wie in deinem Fall) gibts einen Fehler.
//über die Parse()-Methode
float c = float.Parse(Console.ReadLine);
Das was man in diesem Fall tatsächlich verwenden sollte. Oder zur Sicherheit eben TryParse verwenden.
//Über den as-Operator
long d = Console.ReadLine as long;
Funktionier hier ebenfalls nicht (wie du es wahrscheinlich willst), da es nur bei Verweistypen klappt. Eingesetzt wird es meistens bei Casts von Basisklasse in abgeleitete Klasse, wenn das schief geht gibt es null zurück.
//Über die Methode .ToString()
string e = Console.ReadLine.ToString();
Damit ist nur die Konvertierung in string möglich und in den meisten Fällen gibt es da keine Alternative. Also (string)5 klappt zB nicht. Deshalb für Konvertierungen in string immer ToString() benutzen.
Das unterstützt auch sicher JEDER Typ, da es von objekt geerbt wird.
MfG IGnow