Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
as работает с такими типами, значение null получается при любой неудачной распаковке:object box = 42L;
int? unbox = box as int?; // null
DBNull автоматически превращается в обычный null во время распаковки.Типичный вопрос на собеседовании об упаковке и распаковке выглядит следующим образом — «Что будет при запуске данного кода, и если он не будет работать то как его исправить?».
Тестовый код:
object box = (int)42; long unbox = (long)box;
object x = (int)123;
object x = (int?)123;
Вообще, про такие вещи лучше все-таки читать в спецификации, а не пытаться реверс-инжинирить их на кусках кода.
Интересные моменты в C# (boxing unboxing)