Приведение упакованного значения

Почему нельзя напрямую преобразовать int , помещенный в коробку, в double ?

object o = 12;
double d = (double)o;

Это вызывает недопустимое исключение приведения. Вместо этого кажется, что сначала его нужно преобразовать как int , а затем в double .

object o = 12;
double d = (double)(int)o;

Я уверен, что простой ответ - «потому что так работает бокс», но я надеюсь, что кто-то может пролить здесь немного света.

13
задан Adam Rackis 15 March 2011 в 13:50
поделиться