Да, они предоставляют дополнительные услуги.
A, используя следующую директиву:
using MyNamespace;
Указывает компилятору искать в пространстве имен MyNamespace
при разрешении простых имен - так что если выесли у вас есть тип MyNamespace.Foo
, вы можете просто использовать Foo
в своем источнике, чтобы ссылаться на него, когда вы получите это с помощью директивы.
Однако пространство имен объявление эффективно говорит, «Все, что я объявляю в этом блоке, находится в заданном пространстве имен».Таким образом, чтобы объявить тип MyNamespace.Foo
, вы должны использовать:
namespace MyNamespace
{
public class Foo
{
...
}
}
Понимаете?Директива using
говорит, что вы хотите использовать вещи в определенном пространстве имен, тогда как объявление пространства имен о размещении вещей в определенном пространстве имен.