явно ссылаются на класс без пространства имен в C # - PullRequest
28 голосов
/ 04 мая 2010

Код, с которым я работаю, имеет класс Environment , которого нет ни в одном пространстве имен. К сожалению, если я нахожусь в классе, который импортирует пространство имен System , нет никакого способа обратиться к пользовательскому классу с именем Environment . Я знаю, что это был неудачный выбор, и его следует реорганизовать, но есть ли способ, которым я могу явно сослаться на конфликтующий класс?

В C ++ кажется, что это можно сделать с помощью :: , а в Java есть нечто, называемое global :: Как мне это сделать в C #?

Ответы [ 3 ]

40 голосов
/ 04 мая 2010

C # также имеет глобальное (или безымянное) пространство имен - вы можете использовать global:: для доступа к вашему классу:

global::Environment 

Подробнее о MSDN . Также см. Оператор ::.

Вы также можете создать псевдоним для него:

using myEnv = global::Environment;
using sysEnv = System.Environment;
2 голосов
/ 04 мая 2010

Должно быть global::Environment, как в Java

1 голос
/ 04 мая 2010

Код, с которым я работаю, имеет класс Environment, которого нет ни в одном пространстве имен

Вы должны абсолютно изменить это. Или, если это не ваш код, отправьте отчет об ошибке и отложите использование, пока ошибка не будет устранена. Не использовать пространство имен - это абсолютный запрет.

(Несмотря на хорошо работающее решение, опубликованное @Oded.)

...