命名空间的声明:
用namespace 关键字用于声明一个命名空间。在命名空间的声明中不能包含任何访问修饰符。声明命名空间可以帮助控制类名称和方法名称的范围,防止命名冲突。
命名空间是可以嵌套的。
例如:
namespace A
{
namespace B
{
}
}
或者
namespace A.B
{
}
两者是等效的。
命名空间的引用:
使用using命令导入命名空间、或者通过完全的限定名。多数情况使用using是可以的。但是当两个命名空间存在相同类名时,怎么会导致编译时错误,
此时就需要使用完全限定名,还有一种办法就是使用using 为命名空间起别名。
例如:
声明两个命名空间,都有相同的类Test。
namespace A
{
public class Test
{
}
}
namespace B
{
public class Test
{
}
}
只是用一个命名空间的类,可以使用using指令,或者使用完全的限定名。
例如:
using A;
namespace C
{
class Program
{
static void Main(string[] args)
{
Test a=new Test(); // 等价于完全限定名 A.Test A = new A.Test();
}
}
}
如果同时使用A,B两个命名空间的Test类,就会报错 “Test”是“A.Test”和“B.Test”之间的不明确的引用
using A;
using B;
namespace C
{
class Program
{
static void Main(string[] args)
{
Test a=new Test();
}
}
}
此时需要使用完全限定名来使用类Test。
using A;
using B;
namespace C
{
class Program
{
static void Main(string[] args)
{
A.Test a=new A.Test();
}
}
}
这样就不会报错了。