繁体   English   中英

为什么不能使用部分根名称空间?

[英]Why can't I use partial root namespace?

我有一个带有根名称空间Protege.MyLibrary已编译类库。

它具有一些根类型,例如CommonlyNamedType

当我将库添加到使用的应用程序中时,为了某些情况的清晰起见,我希望能够将变量指定为:

using Protege;
...
MyLibrary.CommonlyNamedType oMyType = new MyLibrary.CommonlyNamedType;

而不是

using Protege.MyLibrary;
...
CommonlyNamedType oMyType = new CommonlyNamedType;

前者不编译,表示名称空间为Protege “不需要使用指令”,可以将其删除。

这似乎很奇怪,因为我可以采用其他方法并添加其他名称空间,例如Protege.MyLibrary.AnotherNamespace

我似乎能够在VB.NET中100%做到这一点-使用Imports Protege和/或Protege.MyLibraryProtege.MyLibrary ,甚至可选地使用冗余限定类型。 但不是在C#.NET中。

我对SO和其他地方的环境很好,并且没有看到有关此行为的解释。 有任何想法吗?

您可以静态导入类似的类

using static System.IO.File;

它不支持类,您需要使用常规using来导入名称空间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM