首页 理论教育 编译单元的处理及命名空间规则

编译单元的处理及命名空间规则

时间:2023-10-22 理论教育 版权反馈
【摘要】:编译C#程序时,所有这些编译单元一起进行处理。因此,这些编译单元间可以互相依赖,甚至以循环方式互相依赖。1)在同一个命名空间内,类名不能重名。当命名空间声明作为顶级声明出现在编译单元中时,该命名空间成为全局命名空间的一个成员。命名空间名称可以是单个标识符或者是由“.”标记分隔的标识符序列。当使用“.”标记时,允许一个程序直接定义一个嵌套命名空间,而不必按词法嵌套若干个命名空间声明。

编译单元的处理及命名空间规则

C#的编译单元定义了源文件的总体结构。一个C#程序是由一个或多个编译单元组成的,每个编译单元都用独立的源文件来保存。编译C#程序时,所有这些编译单元一起进行处理。因此,这些编译单元间可以互相依赖,甚至以循环方式互相依赖。

如果一个程序包含多个源文件,编译程序时则需要将所有的源文件放在一起编译,具体的命令格式如下:

使用如下的命令可以显示csc的所有参数的意义:

使用VisualStudio可以迅速地创建一个项目,并能将所有的源文件都放在项目中。

为了最大限度地避免类名冲突,C#通常使用命名空间来组织类。具体使用原则如下。

1)在同一个命名空间内,类名不能重名。

2)在不同的命名空间中,可以使用相同的类名。(www.xing528.com)

一个编译单元可以包括任意命名空间定义,也可能没有。命名空间是可以嵌套的,即在一个命名空间内部还可以定义其他的命名空间。

声明命名空间可以作为顶级声明出现在编译单元中,也可以作为成员声明出现在另一个命名空间声明内。当命名空间声明作为顶级声明出现在编译单元中时,该命名空间成为全局命名空间的一个成员。当某个命名空间声明出现在另一个命名空间声明内时,该内部命名空间就成为包含着它的外部命名空间的一个成员。无论是哪种情况,一个命名空间的名称在它所属的命名空间内必须是唯一的。

在C#中,使用关键字namespace来声明命名空间,具体格式如下:

命名空间的隐式关键字是public,而且在命名空间的声明中不能包含任何访问修饰符。

在代码块内,可选用0个或者多个using指令来导入其他命名空间和类型的名称,这样就可以直接地而不是通过限定名来引用它们。

命名空间名称可以是单个标识符或者是由“.”标记分隔的标识符序列。当使用“.”标记时,允许一个程序直接定义一个嵌套命名空间,而不必按词法嵌套若干个命名空间声明。例如,下面的两段代码的功能是等效的:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈