' Define a new object based on your ListBox class.
Dim LBC as New ListBox
' Define a new Windows.Forms ListBox control.
Dim MyLB as New System.Windows.Forms.ListBox
下图说明了两个命名空间层次结构,它们都包含名为 ListBox 的对象。
Dim LBC As New ListBoxProject.Form1.ListBox()
因为编译器总能确定正在使用哪一个对象,完全限定名避免了名称冲突。然而,名称本身可能变得冗长繁琐。为避免这点,可以使用 Imports 语句来定义“别名”——可用来替代完全限定名的缩写名称。例如,下面的代码片断为两个完全限定名创建别名,并且使用这些别名定义两个对象:
Imports MyProj1 ' This namespace contains a class called Class1.
Imports MyProj2 ' This namespace also contains a class called Class1.
如果试图在没有完全限定的情况下使用 Class1,Visual Basic .NET 将产生错误,指出名称 Class1 不明确
下面的示例显示了如何为命名空间定义和使用 using 别名:
// cs_using_directive.cs
using MyAlias = MyCompany.Proj.Nested; // define an alias to represent a namespace
namespace MyCompany.Proj
{
public class MyClass
{
public static void DoNothing()
{
}
}
namespace Nested // a nested namespace
{
public class ClassInNestedNameSpace
{
public static void SayHello()
{
System.Console.WriteLine("Hello");
}
}
}
}
public class UnNestedClass
{
public static void Main()
{
MyAlias.ClassInNestedNameSpace.SayHello(); // using alias
}
}
输出