C# – Cannot unbox as a ‚type‘

Dieses Stück Code fand sich in abgewandelter Form in einem meiner Programme

object _i = 4;
decimal _d = (decimal)_i; // Cannot unbox '_i' as a 'decimal' - InvalidCastException

Kann man plötzlich kein int mehr auf double casten?  Hätte ich mal aufgepasst, dann wüsste ich, dass ein unboxing ((decimal)_i) nur dann funktioniert, wenn der Zieldatentyp auch genau dem Ausgangsdatentyp entspricht. Im obigen Fall müsste ich solch ein Konstrukt anwenden:

object _i = 4;
decimal _d = (decimal)(int)_i;

Ein dämlicher Fehler, den man auch nur einmal macht, sobald man weiß was man falsch gemacht hat.

Done;

Kolja Engelmann

Technikfan, Freizeitprogrammierer, selbsternannter Toolking und vermutlich größter Drachenfan Deutschlands blogged hier die Lösungen zu IT-Problemen die ihm über den Weg laufen, kleine Softwaretools, nostalgische Anfälle und missbraucht das Ganze gern auch mal als privates Tagebuch und Fotoalbum.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert