从使用的命名空间中排除一个类。

8
我所有C#文件的第一句话都是"using System;"。现在,随着框架版本4的发布,这个命名空间中包含一个名为"Action"的类。这也是我自己代码中一个常用命名空间中的类名。现在有一个冲突。当然,我可以通过在之前使用"Action"的地方显式地使用"MyNamespace.Action"来解决这个冲突。这些代码行数有好几百甚至上千行。或者我可以不使用System命名空间,这当然会导致许多其他问题。我想写一些像"using System but not System.Action"这样的东西,但我找不到这样的语句。有什么想法吗?
2个回答

12

不可以。

但是你可以添加using Action = MyNamespace.Action。但是对于新的开发人员来说,这将会非常令人困惑,因为Action从3.5版本开始就是.net的基本部分,所以我强烈建议您将您的类重新命名。


每天学点新东西。我知道你可以为命名空间设置别名,但没意识到你也可以为类型设置别名。 - Rawling
是的,这就是解决方案,谢谢!不幸的是,我不能重命名我的类,因为我的软件是一个类库,已经被许多客户使用了多年。现在当我们转到框架4时,他们也将不得不使用这个框架,并且还必须在每个使用我们类的命名空间的文件中包含这一行。 - Gerhard

0

using指令有两个用途:

允许在命名空间中使用类型,因此您不必限定该命名空间中的类型的使用:

using System.Text;

为命名空间或类型创建别名(你可以选择这个)。

using Project = PC.MyCompany.Project;

using 关键字也可以用于创建 using 语句,这些语句定义了对象何时被处理。有关更多信息,请参见 using 语句。

C# 参考中的 using 指令


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接