В чем разница между добавлением импорта внутри NameSpace или Outside. Есть ли разница в загрузке сборок?с использованием пространств имен и загрузки
Using System;
namespace test
{
}
VS
namespace test
{
using System;
}
В чем разница между добавлением импорта внутри NameSpace или Outside. Есть ли разница в загрузке сборок?с использованием пространств имен и загрузки
Using System;
namespace test
{
}
VS
namespace test
{
using System;
}
Помещение оператора 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
}
Будет ли System2 переименовываться в другой файл, если пространство имен test2 определено в этом файле (без использования)? – strager
Nope. using
директива совершенно время кометы. Он будет не влияет на поведение во время работы в любом случае. Это просто поможет вам не писать длинные полные имена типов.
Это всего лишь способ получить имя для объекта. Вы даже можете переименовать некоторые вещи, если вы начнете получать конфликты:
/// 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 { }
Дубликат: http://stackoverflow.com/questions/125319/should-usings-be- in-or-outside-the-namespace – BFree