Могу ли я скрыть классы в глобальном пространстве имен в C #? - PullRequest
0 голосов
/ 02 сентября 2010

В решении Visual Studio 2008 у меня есть две версии одного класса в двух разных пространствах имен.

В VB, если я сделаю это:

imports MyNamespace
' ...
dim x as DuplicatedClass = new DuplicatedClass()

он использует MyNamespace.DuplicatedClass вместо DuplicatedClass с глобальным пространством имен. Между тем, в C # делаем это:

using MyNamespace;
// ...
DuplicatedClass x = new DuplicatedClass();

использует глобальный DuplicatedClass с пространством имен. Чтобы использовать другую версию, я должен использовать MyNamespace.DuplicatedClass.

Я понимаю, что это проблематичная установка, но я не могу ее изменить. Есть ли способ запретить C # видеть глобальный класс пространства имен, или специально выгружать его, или ...? Учитывая, сколько классов находится в глобальном пространстве имен, необходимость каждый раз выбирать пространство имен может оказаться довольно дорогостоящей.

1 Ответ

3 голосов
/ 02 сентября 2010

Возможно, лучшее, что вы могли бы сделать, это создать псевдоним:

//create alias
using defDuplicatedClass = MyNamespace.DuplicatedClass;

defDuplicatedClass x = new defDuplicatedClass();

Псевдоним имеет файловую область. Так что вам придется повторять его в начале каждого файла по мере необходимости, но, возможно, это лучше, чем повторять пространство имен при каждом вхождении DuplicatedClass.

...