Derived DerivedObj = (Derived)BaseObj
-
Explizite Konvertierungen funktionieren nur dann, wenn die 2 Bedingungen erfüllt sind:
* Der Typ, in den gecastet wird, steht einer Vererbungslinie zum Ausgangstyp.
* Der Verweis der zu konvertierenden Ausgangsreferenz wurde zuvor implizit gecastet.
Aber das lässt sich doch auch kompilieren.
//Unzulässige Konvertierung BaseClass BaseObj = new BaseClass(); DerivedClass DerivedObj = (DerivedClass)BaseObj;
-
Trotzdem runtime error.
-
Ja, gibt bei der Ausführung aber eine
InvalidCastException
.
-
Und?
-
compiliert != richtig programmiert