Что такое Boxing и Unboxing? Рассказываю на примерах
Vložit
- čas přidán 25. 07. 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 хороших