Пространства имен и вспомогательные пространства имен

Есть ли способ использовать пространство имен и затем автоматически использовать все подпространства имен?

Пример:

namespace Root.Account
{
//code goes here
}

namespace Root.Orders
{
//code goes here
}


//New File:
using Root;

Для того, чтобы я использовал код в Root.Account, мне нужно было бы добавить Root.Account в мой код.

Я хотел бы просто сказать, используя Root, и забрать его для всех классов пространства имен.

Если это имеет смысл, возможно ли это?

Спасибо

Ответы

Ответ 1

Нет, ничего не работает по дереву. Однако вам не нужно включать в себя директивы для подъема дерева. Другими словами, если вы используете:

namespace Root.Orders
{
    // Code
}

то все типы в Root уже видны.

Ответ 2

Нет, using директива в С# не позволяет это:

Создайте директиву использования, чтобы использовать типы в пространстве имен без указания пространства имен. Директива using не дает вам доступа к любым пространствам имен, которые вложены в указанное пространство имен.

VB.NET, однако поддерживает несколько более близкое поведение с инструкцией Imports:

Объем элементов, предоставляемых оператором Imports, зависит от того, насколько вы конкретно используете оператор Imports. Например, если указано только пространство имен, все уникальные имена этого пространства имен и члены модулей в этом пространстве имен доступны без квалификации. Если указаны как пространство имен, так и имя элемента этого пространства имен, доступны только члены этого элемента без квалификации.

То есть, если вы скажете

Imports Root

тогда вы сможете просто сказать Orders.Whatever.

Ответ 3

Нет, не совсем. =)

Ответ 4

Из того, как вы изложили исходный вопрос, похоже, что вы можете или не можете понять, что просто используйте:

using Root;

Позже вы уточните свой код:

Account.Class obj = new Account.Class();
Orders.Class obj = new Orders.Class();

Вам не нужно использовать Root.Account для доступа к коду, а также с Root.Orders. Кроме этого, нет возможности автоматически рекурсивно использовать пространства имен. Я думаю, что это приведет к злоупотреблениям с использованием System;

Ответ 5

.NET/С# не поддерживает эту форму пространства имен, используя.

Ответ 6

пространство имен как контейнер объектов. Они могут содержать объединение, структуру, классы, делегат и интерфейс. Основное значение пространства имен в Asp.net С# - для создания иерархической организации программы.

узнать больше о блоге... http://asp-net-by-parijat.blogspot.in/2015/08/what-is-namespace-in-c-need-of.html