Hallo,
Ich finde es extrem lästig, wenn man ständig jeden Mist casten oder sonstige Verrenkungen machen muss.
Ja, so geht's mir auch.
das muss man normalerweise nur sehr selten, weil man ja selten absichtlich inkompatible Datentypen zwangsverheiratet.
Mir passiert das oft. Wenn man z.B. XML-Daten verarbeitet, so sind die ja erst einmal Strings, auch wenn es eigentlich Zahlen oder Kalenderdaten sein sollen. Wenn man dann noch mathematisch damit rechnen muss, wird's ätzemd mit der Typgenauigkeit.
Wenn man z.B. berechnen soll, in welchem Quartal ein Monat liegt, kann man in JavaScript einfach notieren:
var quartal = Math.ceil(myDate.getMonth / 3).
In C# etwa wäre myDate.Month vom Typ int, und durch 3 teilen geht damit nicht wirklich. Also muss man es erst zu decimal oder float casten, dann dividieren, die nächst höhere Ganzzahl berechnen (noch immer decimal) und schleißlich wieder zu int casten:
int quartal = Convert.ToInt32(Math.Ceiling(Convert.ToDecimal(myDate.Month) / 3));
Daher ist es eine feine Sache, wenn der Compiler einen solchen Versuch mit einer Fehlermeldung quittiert.
Nö, daher ist es richtig nervig, wenn der Compiler jede Kleinigkeit mit einer Fehlermeldung quittiert, und im Fall von im Fall von int dividiert durch int gibt er nicht mal eine aus. Das Ergebnis ist wieder int, was man selten haben will.
Das Theater mit den Klasenhierarchien hast du ja schon erwähnt. Wehe, man übegibt die falsche Klasse als Parameter... schon gibt's Mecker :(
Gruß, Don P