【问题标题】:Using same alias for multiple namespaces对多个命名空间使用相同的别名
【发布时间】:2013-08-14 23:15:02
【问题描述】:

是否可以在 C# 中以某种方式为多个命名空间使用相同的 using 别名,我知道它们没有重叠的类名?
例如,如果我可以这样做:

using NSP = namespace1.namespace2;
using NSP = namespace1.namespace3;  

namespace2namespace3没有同名的类,所以不用担心类名有歧义,我这样写会更方便:

NSP.Class1 obj1 = new NSP.Class1();

NSP.namespace2.Class1 obj1 = new NSP.namespace2.Class1();

如果我使用

using NSP = namespace1;

【问题讨论】:

  • 只是我的意见...但是当人们在我们的代码库中这样做时,我绝对讨厌它... uuggghhh。

标签: c# .net namespaces using


【解决方案1】:
using NSP = namespace1.namespace2;
using NSP = namespace1.namespace3;  

首先你不能这样做。编译器不允许您为两个不同的命名空间定义相同的别名。这会导致编译器时间错误。

namespace2 和 namespace3 没有同名的类,所以 不用担心类名不明确,

不管它们是否有相同的命名类,编译器不允许你这样做。

【讨论】:

  • 我知道这不会编译,我只是举例说明了我的想法。我的问题是这个问题是否有任何方法或解决方法。
  • @kobac 我不这么认为。如果编译器告诉你不应该这样做,你不应该:)
【解决方案2】:

不,你不能,即使两个命名空间没有同名的类。 你会得到这个错误:

使用别名“NSP”之前出现在此命名空间中。

【讨论】:

    【解决方案3】:

    您不能再次使用相同的别名。您将收到以下编译器错误

    使用别名“xxx”之前出现在此命名空间中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-03
      • 2016-09-16
      相关资源
      最近更新 更多