Почему нельзя напрямую преобразовать int
, помещенный в коробку, в double
?
object o = 12;
double d = (double)o;
Это вызывает недопустимое исключение приведения. Вместо этого кажется, что сначала его нужно преобразовать как int
, а затем в double
.
object o = 12;
double d = (double)(int)o;
Я уверен, что простой ответ - «потому что так работает бокс», но я надеюсь, что кто-то может пролить здесь немного света.