在类型名称冲突的情况下,使用别名将使您不必使用完全限定名称。TextBox例如,名称用于以下两个命名空间。
System.Windows.Forms.TextBox
System.Web.UI.WebControls.TextBox
Run Code Online (Sandbox Code Playgroud)
依赖 using 声明的顺序将是相当脆弱的,并且只会对命名空间之一有所帮助。更好的是为每个命名空间分配一个别名。
正如其他人所说的那样,当您必须同时导入多个名称空间时,消除类型的歧义很有用.
这似乎违背了其他人的意见,但它也可能有助于澄清两个域之间的范围:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
在极少数情况下,当您必须指定命名空间(用于消除歧义)时,它可能也很有用,您的命名空间不是很长,以证明别名的合理性,但很可能很快就会改变(例如当您使用命名空间来支持两个命名空间时)同时版本的代码路径):
using DevCode = Gilco.V1;
Run Code Online (Sandbox Code Playgroud)
当你遇到冲突时,它们很有用.例如,如果您有类型的NamespaceA.Jobber和NamespaceB.Jobber,并希望在同一个类中使用他们两个,你将不能够只添加using了NamespaceA和NamespaceB声明,因为那样的话,编译器将不知道你指的是什么,如果你输入Jobber.在这种情况下,您将为一个或两个命名空间提供别名.
这可以使您的代码更清晰,特别是如果命名空间很长,因为替代方法是每次使用类型时都写出整个命名空间.