Хабр Курсы для всех
РЕКЛАМА
Большая витрина: от крупнейших школ до частных авторов. Сравнивайте по цене, длительности, формату и выбирайте самый подходящий курс!
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)