代码之家  ›  专栏  ›  技术社区  ›  masoud ramezani

在C中使用名称空间别名有什么好处?[复制品]

  •  15
  • masoud ramezani  · 技术社区  · 15 年前

    这个问题已经有了答案:

    使用名称空间别名有什么好处?它只对简化编码有用吗?

    7 回复  |  直到 13 年前
        1
  •  5
  •   Merlyn Morgan-Graham    13 年前

    正如其他人所说,当必须同时导入多个命名空间时,它对于消除类型的歧义非常有用。

    这似乎与其他人的观点相反,但也有助于澄清两个领域之间的范围:

    using Gilco.Test.ProjectX;
    using DevCode = Gilco.Nilfum.Alpha.ProjectX;
    
    public class MyTests
    {
        public void TestCase1()
        {
            var car = new DevCode.Car();
            var testCar = new TestCar();
        }
    }
    

    在极少数情况下,当必须指定命名空间时(为了消除歧义),您的命名空间不太长,不足以证明别名的正确性,但很可能很快就会改变(例如,当您使用命名空间同时支持代码路径的两个版本时):

    using DevCode = Gilco.V1;
    
        2
  •  9
  •   gsharp    15 年前

    我只在与类发生冲突时使用名称空间别名。 对我来说,这一点也不简单。 我的意见是:如果没有必要,就不要用它。

        3
  •  5
  •   Graham Clark    15 年前

    当你有冲突的时候它们是有用的。例如,如果您有类型 NamespaceA.Jobber NamespaceB.Jobber 如果要在同一个类中同时使用它们,则不能只添加 using 命名空间A和命名空间B的语句,因为如果您键入 Jobber . 在本例中,您将为一个或两个名称空间提供别名。

    这可以使代码更清晰,尤其是在名称空间很长的情况下,因为另一种选择是每次使用类型时都要写出整个名称空间。

        4
  •  4
  •   Scott Munro Shimmy Weitzhandler    15 年前

    在类型名冲突的情况下,使用别名可以避免使用完全限定名。名字 TextBox 例如,在以下两个名称空间中都使用。

    System.Windows.Forms.TextBox
    System.Web.UI.WebControls.TextBox
    

    依赖于使用声明的顺序将是相当脆弱的,并且只对其中一个名称空间有帮助。最好是为每个名称空间分配一个别名。

        5
  •  1
  •   Fadrian Sudaman    15 年前

    命名空间别名对于解决代码中两个或多个同名类的不确定性很有用。例如,您有来自WinForm的button类,也有来自第三个库的button类。当您的代码引用按钮时,您可能希望从第三方量化它,而不希望将长整型文本放在任何地方,而是使用别名 using CompanyX = CompanyX.UI.Animated.Control …钮扣

    事实上,我只是在早期的工作项目中使用它来提高代码的可读性。我使用OfficeWord自动化,而不是到处定义变量应用程序,很难将其与实际的应用程序类区分开来,而是使用 Word=Microsoft.Office.Interop.Word 在密码里我可以说 Word.Application 引用Word应用程序对象

        6
  •  0
  •   Nina    15 年前

    当使用两个同名的类时,我通常只使用名称空间别名。

        7
  •  0
  •   zerkms    15 年前

    afaik创建名称空间别名时-每个别名的静态变量值是它自己的,不依赖于其他别名。 +简化