在一个命名空间中,可以声明一个或多个下列类型:
另一个命名空间
类
接口
结构
枚举
委托
无论您是否在 c# 源文件中显式声明了命名空间,编译器都会添加一个默认的命名空间。该未命名的命名空间(有时称为全局命名空间)存在于每一个文件中。全局命名空间中的任何标识符都可用于命名的命名空间中。
命名空间隐式具有公共访问权,并且这是不可修改的。有关可以分配给命名空间中的元素的访问修饰符的讨论
语法
namespace samplenamespace
{
class sampleclass{}
interface sampleinterface{}
struct samplestruct{}
enum sampleenum{a,b}
delegate void sampledelegate(int i);
namespace samplenamespace.nested
{
class sampleclass2{}
}
}
声明一个命名空间
namespace counter {
class myclass {
}
}
看一个命名空间实例
using system;
namespace counter {
class myclass {
}
}
class mainclass {
public static void main() {
counter.myclass my = new counter.myclass();
}
}
演示二
class example {
public static void main() {
// console.writeline is fully qualified.
system.console.writeline("a simple c# program.");
}
}
重新命名
using thatconsoleclass = system.console;
class mainclass
{
public static void main()
{
thatconsoleclass.writeline("hello");
}
}
同一页面多个类调用不同在namespaces
using system;
namespace foo {
public class money {
public money() {
}
public void print( ) {
console.writeline("foo.money.print");
}
}
}namespace bar {
public class money {
public money( ) {
}
public void print( ) {
console.writeline("bar.money.print");
}
}
}
public class mainclass {
public static void main( ) {
foo.money fm = new foo.money();
bar.money bm = new bar.money();
fm.print( );
bm.print( );
}
}