我可以在C#中隐藏全局命名空间中的类吗?

时间:2010-09-02 19:14:58

标签: c# visual-studio namespaces

在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 个答案:

答案 0 :(得分:3)

也许您可以做的最好的事情是创建一个使用别名:

//create alias
using defDuplicatedClass = MyNamespace.DuplicatedClass;

defDuplicatedClass x = new defDuplicatedClass();

别名是文件作用域。所以你必须根据需要在每个文件的顶部重复它,但也许这比重复每个出现DuplicatedClass的命名空间要好。