2009-03-20 3 views

ответ

7

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

Stylecop рекомендует помещать оператор «using» в пространство имен, а Microsoft утверждает, что размещение оператора using внутри пространства имен позволяет CLR ленивой нагрузке во время выполнения. Однако существует ряд тестов, которые имеют questioned this.

Using System; 
namespace test 
{ 
    //Can Ref System 
} 

namespace test2 
{ 
    using System2; 
    //can Reference anything from test2, System2 and System 
    //will look for a reference in test, then System2 then System 


} 
+0

Будет ли System2 переименовываться в другой файл, если пространство имен test2 определено в этом файле (без использования)? – strager

1

Nope. using директива совершенно время кометы. Он будет не влияет на поведение во время работы в любом случае. Это просто поможет вам не писать длинные полные имена типов.

0

Это всего лишь способ получить имя для объекта. Вы даже можете переименовать некоторые вещи, если вы начнете получать конфликты:

/// buncha assys. 
namespace Foo.Bar.Interfaces { interface Iface { }; } 
namespace Foo.Baz.Interfaces { interface Iface { }; } 
namespace Foo.Bat.Interfaces { interface Iface { }; } 

В другом месте ..

using Barfaces = Foo.Bar.Interfaces; 
using Batfaces = Foo.Bar.Interfaces; 

class A : Barfaces.Iface { } 
Смежные вопросы