Назад к вопросам
JuniorТеорияЧасто
Что произойдёт при компиляции и запуске программы?
int n = 5;
object box = n;
Console.WriteLine(box);
long big = (long)box;
Console.WriteLine(big);5, затем исключение InvalidCastException
- Ждать
5дважды: распаковка — не преобразование числа; упакованныйintдостают какint, а не какlong, и(long)boxвыбрасывает исключение. Пишитеlong big = (int)box;. - Ждать ошибку компиляции: компилятор не видит, что лежит в
object, поэтому приведение проверяется, только когда программа доходит до этой строки.
- Как изменить строку с
(long)box, чтобы программа напечатала5дважды? - Почему
object box = n;не требует приведения, аint back = box;не компилируется?