Друзья, подскажите пожалуйста, когда я добавляю namespace, в сборку он

входит полностью, или только то, от чего зависит проект?
и насколько плохая практика повторять один и тот же неймспейс в разных скриптах, если есть возможность ссылаться на один скрипт?
где то слышал (вроде у Сакутина, если кто знает), что это не есть хорошо, могу что то путать

24 ответов

25 просмотров

возможно, ты путаешь неймспейс со сборками (*.asmdef) код в билд попадает сборками. если там есть неймспейс, оно попадает целиком

Kapitan-Says Автор вопроса
neFormal
возможно, ты путаешь неймспейс со сборками (*.asmd...

а если я дублирую неймспейс в других скриптах, они все будут ссылаться на одно и то же место в проекте? в целом это ведь не засоряет проект?

Kapitan Says
а если я дублирую неймспейс в других скриптах, они...

нет какого-то "места". считай, это префикс к имени класса вместо MyClass будет MyNamespace_MyClass

Kapitan-Says Автор вопроса
neFormal
нет какого-то "места". считай, это префикс к имени...

я имею ввиду, когда я использую using nameSpace в разных скриптах, это ведь не засоряет проект, а создает ссылку на единое место где этот неймспейс лежит?

Kapitan-Says Автор вопроса
Kapitan Says
я имею ввиду, когда я использую using nameSpace в ...

Агась. Представляй namespace как ссылку на внешний ресурс , для текущего ресурса до этого неизвестный Ресурс не будет дублироваться Дублируется просто запоминание одной и той же ссылки, если я правильно поняла вопрос

Kapitan-Says Автор вопроса
Poli lova
Агась. Представляй namespace как ссылку на внешний...

да, вы правильно поняли вопрос. просто у Сакутина, вроде, слышал, что плохая практика оставлять неиспользуемые ссылки на неймспейс. Почему - не помню, либо он не объяснил, поэтому такое недопонимание осталось

Kapitan Says
да, вы правильно поняли вопрос. просто у Сакутина,...

Просто чтобы код не засорять лишними строками, которые ничего не значат. Потом, когда через месяц кто-нибудь откроет скрипт, он сразу по неймспейсам сможет определить, что в коде используется, а что нет.

Kapitan Says
да, вы правильно поняли вопрос. просто у Сакутина,...

https://stackoverflow.com/questions/1162766/how-is-performance-affected-by-an-unused-using-directive

Kapitan-Says Автор вопроса
Poli lova
Агась. Представляй namespace как ссылку на внешний...

плюс еще в питоне была возможность подгрузить отдельный класс из неймспейса, якобы это положительно сказывалось на производительности(опять же, если ничего не путаю)

Kapitan Says
да, вы правильно поняли вопрос. просто у Сакутина,...

Не знаю как конкретно Mono с этим работает, но в CLR так: если ты подключил namespace и нигде его не использовал, компилятор не будет его включать в результате

Kapitan Says
плюс еще в питоне была возможность подгрузить отде...

в бидоне это связано с прекомпиляцией скрипта в байткод. тут компиляция происходит до билда

Kapitan Says
я имею ввиду, когда я использую using nameSpace в ...

Неймспейсы не сборки, они просто УСЛОВНО разделяют сборку на части. Если в проекте есть ссылка на сборку, то она вся попадет в билд в любом случае, не зависимо от того, какие неймспейсы ты использовал. Это нужно компилятору, чтобы понять какой класс ты хочешь использовать. После компиляции все имена классов будут заменены на полное имя: MyClass станет MyNamespace.MyClass

Kapitan Says
да, вы правильно поняли вопрос. просто у Сакутина,...

Потому что лишняя, бессмысленная строчка в коде + автодополнение будет показывать то, что тебе не нужно

Kapitan Says
плюс еще в питоне была возможность подгрузить отде...

Питон совсем другая история, там по другому работает

Смотря что понимать под "включать в результате", потому что оно все равно попадет в билд

Phantom
Смотря что понимать под "включать в результате", п...

там вообще не от рантайма зависит, а от Roslyn и он только фактическое использование учитывает


там вообще не от рантайма зависит, а от Roslyn и о...

Фактическое использование чего? Компилятор не будет резать сборку на части, чтобы в билд пихать только одну

Phantom
Фактическое использование чего? Компилятор не буде...

фактическое использование всей сборки, естественно

Phantom
Что?

по умолчанию должно работать так: использовал любой тип из сборки - ссылка на неё пометилась как фактически используемая и её включает в билд в Unity не знаю, идёт ли оно в Managed, если фактически не используется Кстати, IL2CPP по умолчанию вырезает неиспользуемый код из сборок, там это настраивается


по умолчанию должно работать так: использовал любо...

Roslyn (и скорее всего mono, но в unity используется rosyln) добавляет сборку в билд вне зависимости от того, было ли использовано что то из сборки, если в csproj есть Reference или PackageReference, то оно идет в билд IL2CPP не компилятор шарпа, а речь вроде про компиляторы шарпа

Phantom
Roslyn (и скорее всего mono, но в unity использует...

У меня никогда в билд не шли неиспользуемые сборки, когда использовал Rider без Unity

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Привет!) Кто как юзает переменные в строках?) Чисто ради интереса Вот так: echo "У меня {$bananasAmount} бананов"; Или вот так: echo "У меня ${bananasAmount} бананов";
Виталий
3
Карта сайта