2015-04-25 2 views
-1

Есть, например, этоЛучшая производительность при импорте только части библиотеки?

using SportsStore.Domain.Entities; 

лучше, чем это

using SportsStore; 

?

Если это так, что это значит для выполнения моей программы при импорте больших библиотек?

Редактировать: Я имею в виду, я понимаю, что бессмысленно импортировать вещи, которые я не использую, но есть ли какой-либо фактический вред в этом?

+1

Это абсолютно ничего не значит для исполнения. Это импортирует пространство имен, но вам нужно будет ссылаться на всю библиотеку независимо от того, какую часть пространства имён вы импортируете. –

ответ

1

Нет разницы в производительности.

«А с использованием-пространств имен директивы импорта типов, содержащихся в пространстве имен в непосредственно вмещающего модуль компиляции или пространства имен тела, что позволяет идентификатор каждого типа, которые будут использоваться без квалификации»

Так используя оператор не имеет влияние того, когда и как CLR загружает сборку. Это просто синтаксис, чтобы вы могли использовать типы в файле cs без полной квалификации.

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

Итак, как только вы создаете новый экземпляр типа в вашем «SportsStore.Domain.Entities», сборка загружается в память. Частичная загрузка сборок отсутствует.

+0

Спасибо, очень информативно! – hellogoodnight

2

Они совершенно разные. A using директива этой формы только сообщает компилятору, чтобы члены данного пространства имен были доступны как простые имена. У него есть no эффект во время исполнения - если у вас не было любых директивusing и просто сослался на все по имени, вы получите тот же код. Поскольку «вложенные» пространства имен не импортируются, только using SportsStore не будет импортировать элементы пространства имен SportsStore.Domain.Entities.

(с помощью директивы также сделать методы расширения, объявленные в типах в пределах данного пространства имен доступны, кстати.)

Как правило, имеют using директивы все, что нужно (для того, чтобы сохранить большую часть вашего код простой), но не более того, чтобы избежать ненужного загромождения кода. Visual Studio имеет команду сортировки с использованием директив в алфавитном порядке и удаления ненужных - у меня есть связанный с Ctrl + Shift + U, который я использую довольно часто.

0

Это не лучше или хуже. Это семантически разные - предоставление неквалифицированного (прямого) доступа к различным наборам объектов.

Нет никакого эффекта производительности вообще.