Что такое Boxing и Unboxing? Рассказываю на примерах
HTML-код
- Опубликовано: 12 июн 2024
- Поддержи канал, бро!
paypal.me/gamedevlavka - мир
boosty.to/gamedevlavka - рф
И даже криптой (пока только Ethereum):
0x7a53325D1C36Eea7BbE8C6a8D00f2a0efd580e77
Наконец-то добрался до объяснения, что такое боксинг (boxing) и анбоксинг (unboxing). А бонусом к видео - ответы на вопросы к предыдущим выпускам, уточняю, как же работают ссылочные типы внутри значимых и наоборот. Эти знания все еще подходят как для разработчиков в Unity, так и для любых других программистов, работающих на C#.
Кстати, лайки и донаты волшебным образом ускоряют процесс записи новых видео!
__________
Залетай в Таверну Разработчика в телеге, и делись своими траблами в Unity, вместе разбираться будем!
t.me/gamedevtavern
Подписывайся на канал в телеге, или на твиттер, там я публикую коротенькие типсы и практики, которые помогут писать код лучше, понятнее и эффективнее:
Telegram: t.me/gamedevlavka
Twitter: / gamedevlavka
Twitter (личный): / vavilichevgd
0:00 Вступление
0:56 Что если класс в структуре и наоборот?
8:33 Что такое Boxing и Unboxing
Очень интересные видео уроки по Unity, только начал изучать, но прямо помогает (по книжкам не все разберешь). Когда изучал PHP случайно наткнулся на касты Д.Елисеева, там курсы на 100+ часов идут, после его курсов, на все остальные смотрел как на г..но )) Он берет одну конечную задачу (например интернет-магазин или онлайн-аукцион) и с нуля ее решает, после курса, проект можно с мелкими доработками в продакшн запускать. У него в ход идет все - SOLID, DDD и т.п. Переписывает многие вещи на фреймворках, крутой чувак, короче. Было бы круто, чтобы в Unity такой же чувак появился ;)
Благодарю за отличный контент!
Хорошее видео!)
Спасибо, лайк!
для этого я и делаю дженерик чтобы не было лишней упаковки/распаковки.
Корректно ли сказать, что Boxing и Unboxing - это cast, при котором у переменной тип меняется со значимого на ссылочный (или наоборот) ?
Некорректно, потому что меняется не тип, а фактически появляется новая переменная с новым типом
Я правильно понял, что боксинг/анбоксинг актуальны, только когда нужно поменять значимый тип на ссылочный (создав для этого новый объект)? А если в контексте будут только ссылочные типы, то боксинг/анбоксинг не будет применяться? Спасибо!
Не совсем так. Боксинг/анбоксинг, это не фича, а издержки. Нет никакой нужды размножать данные конвертируя форматы. Но бывает нужно использовать данные в максимально общем виде - как object или интерфейс. Удобно, но нужно понимать, что если данные будут значимыми, то будет иметь место боксинг/анбоксинг (что не есть хорошо), и учитывать это
Очень конечно познавательно. Я понял, что боксинг это плохо. А зачем вообще тогда нужен боксинг ? Чтобы мы получили ссылку, а не значение? Ну так после Unboxing у нас все равно будет значение, а не ссылка. Замечу, что во многих ваших видео у меня повисает вопрос "а зачем?" Не возникает такого вопроса только если я уже знаком в какой-то степени с рассказываемой темой . А так контент классный, смотрю почти все ваши видео, не забрасывайте это дело
В программировании редко бывают идеальные решения: максимально гибкие и при этом быстрые. Поэтому программисты всегда балансируют между этими двумя аспектами. Чтобы уметь балансировать, нужно понимать плюсы и минусы разных подходов. Например: ObservableVariable с боксингом плохой вариант, т.к. высокая вероятность, что будет много переменных с типом значения, которые могут меняться очень часто. Соответственно будет быстро разрастаться стек и куча, это плохо.
Однако существуют моменты, когда гибкость важнее скорости, например события не частые, но очень разнообразные, тогда подойдёт боксинг и анбоксинг
Переделай пожалуйста старый Observable в новый
Сделай обзор интерфейсов
Каких интерфейсов?
@@gamedevlavka хороших