2013-04-21 3 views
2

В чем разница между добавлением System.Net так:Разница между с System.Net и без System.Net

CookieContainer globalcontainer = new System.Net.CookieContainer(); 

и с использованием класса без имен в объявлении

CookieContainer globalcontainer = new CookieContainer(); 

Какие лучше в эффективности?

+0

Оба должны быть такими же, если у вас есть использования заявленных для System.Net пространства имен. Единственное отличие заключается в явной и читабельности. Лично я предпочитаю без добавления пространства имен перед типом. Более читабельна для меня, но нет разницы в производительности. –

ответ

7

Ни один из них не является более эффективным, один из них - это просто определение пространства имен, другое - неявно.

В верхней части файла .cs, то с помощью директивы импорта пространств имен, а это означает, что типы в этих пространствах имен не требуется полный путь, чтобы быть признанным в коде

например

List<T> появляется в System.Collections.Generic ... без помощи директивы для этого пространства имен вы должны использовать полное имя:

System.Collections.Generic.List<int> someList; 

В то время как с ней, вы не

using System.Collections.Generic; 

List<int> someList; 

Иногда могут представлять собой конфликты пространства имен - представьте себе следующий сценарий:

Some.Namespace.Task 
Some.Othernamespace.Task 

Если импортировать оба пространства имен:

using Some.Namespace; 
using Some.Othernamespace; 

Task someTask; // <--- this line will cause a compile time error 

компилятор не знает, какой Task вы хотите, один из Some.Namespace или один из Some.Othernamespace - в этом случае вы должны быть конкретными и поставок полное пространство имен (или использовать псевдоним)

Надеется, что это помогает

Читать все о пространствах имен здесь:

http://msdn.microsoft.com/en-gb/library/z2kcy19k(v=vs.80).aspx

+0

большое спасибо за ваш ответ, у меня есть ответ –

3

Во время выполнения два часто будут одинаковыми.

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

Это время, когда я включать пространство имен:

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

  • Когда это единственный вызов из этого пространства имен, я иногда явным образом включаю пространство имен.

  • Если я импортирую несколько пространств имен, которые содержат один и тот же тип. это очевидно.

Таким образом, ответ, как хороший, так и плохой, как это может звучать, «это зависит». Все, что делает код более читаемым за меньшее время, выигрывает.

http://gurustop.net

Смежные вопросы