当命名空间不明确时使用特定的类
Posted
技术标签:
【中文标题】当命名空间不明确时使用特定的类【英文标题】:Using a specific class when there is a namespace ambiguity 【发布时间】:2019-03-18 17:15:18 【问题描述】:我有一个名为Message
的课程。它位于MyProgram
命名空间内。问题是System.Windows.Forms
还有一个Message
类,所以每当我想使用这两个命名空间中的类时,我都需要写MyProgram.Message
来引用我的类,这很繁琐。
我希望这条线可以工作:
using static Message = MyProgram.Message;
但我收到以下错误:
“使用静态”指令不能用于声明别名
有没有办法强制代码将Message
识别为MyProgram.Message
?此外,更改班级名称也不是真正的解决方案。 :P
【问题讨论】:
延伸阅读:docs.microsoft.com/en-us/dotnet/csharp/language-reference/… 将代码放入 MyProgram 命名空间,使其默认为当前命名空间。问题是您位于不同的命名空间中。 【参考方案1】:using static
用于静态成员,而不是嵌套类型。
常规的using
指令可以正常工作。
using Message = MyProgram.Message;
【讨论】:
是的。using static MyType;
表示在访问该类型的static
成员时可以跳过MyType
,因此您可以只写SomeStaticMember
而不是MyType.SomeStaticMember
。由于MyType
完全消失了,因此在此处提供别名是没有意义的。为此,您使用没有static
关键字的using
指令(不是“语句”)。您上面的解决方案仍然取决于 using
指令的位置。如果using System.Windows.Forms;
在某个namespace
内部,而您的using Message = MyProgram.Message;
在外部,则可能会使用前一个“nearer”指令。以上是关于当命名空间不明确时使用特定的类的主要内容,如果未能解决你的问题,请参考以下文章