¿Por qué un int
que no se ha encapsulado se puede convertir directamente en double
?Fundición de un valor en caja
object o = 12;
double d = (double)o;
Eso arroja una excepción de lanzamiento no válido. En su lugar, parece que primero debe emitirse como int
, y luego a double
.
object o = 12;
double d = (double)(int)o;
estoy seguro de la respuesta simple es "porque así es como funciona el boxeo", pero estoy esperando que alguien podría arrojar un poco de luz aquí.
Ver: [Representación e Identidad - fabulosas aventuras en la codificación] (http://blogs.msdn.com/b /ericlippert/archive/2009/03/19/representation-and-identity.aspx) – Ani
@Ani - Pon eso como respuesta, ¡y lo votaré en un segundo! –
Ditto - ani - parece ser la respuesta correcta para mí –