【问题标题】: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

【问题讨论】:

标签: c# namespaces


【解决方案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”指令。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-15
  • 2012-05-07
  • 1970-01-01
  • 2015-06-15
  • 1970-01-01
  • 2020-05-02
  • 2011-01-05
相关资源
最近更新 更多