Website-Icon Digital Native

C# – Cannot unbox as a ‚type‘

C Sourcecode

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;

Die mobile Version verlassen