C#命名空间和编译单元详解
需积分: 15 35 浏览量
更新于2024-09-14
收藏 70KB DOC 举报
C#命名空间和编译单元
命名空间是C#程序的组织系统,既用作程序的“内部”组织系统,也用作“外部”组织系统(一种向其他程序公开自己拥有的程序元素的方法)。在C#中,命名空间是用来组织相关的类、接口、委托和其他类型的集合。
9.1 编译单元
编译单元是C#程序的基本组成部分。一个编译单元是指一个源文件中的所有代码,包括using指令、global-attributes和namespace-member-declarations。编译单元的组成方式如下:先是零个或多个using-directives,后跟零个或多个global-attributes,然后是零个或多个namespace-member-declarations。
9.2 命名空间声明
命名空间声明是用来声明一个命名空间的。其组成方式如下:先是关键字namespace,后跟一个命名空间名称和体,然后加一个分号(可选)。例如:
```csharp
namespace MyNamespace {
class MyClass { }
}
```
9.3 using指令
using指令是用来使命名空间用起来更方便的。using指令可以分为两种:using别名指令和using命名空间指令。
9.3.1 Using别名指令
using别名指令是用来为一个命名空间或类型指定一个别名的。例如:
```csharp
using MyAlias = MyNamespace.MyClass;
```
9.3.2 Using命名空间指令
using命名空间指令是用来导入一个命名空间的。例如:
```csharp
using MyNamespace;
```
9.4 命名空间成员
命名空间成员是指命名空间中的类、接口、委托和其他类型。这些成员可以被其他程序访问和使用。
9.5 类型声明
类型声明是指在命名空间中的类、接口、委托和其他类型的声明。这些类型可以被其他程序访问和使用。
编译单元和命名空间的关系
一个C#程序由一个或多个编译单元组成,每个编译单元都用一个单独的源文件来保存。编译C#程序时,所有这些编译单元一起进行处理。因此,这些编译单元间可以互相依赖,甚至以循环方式互相依赖。
global-attributes
global-attributes是用来指定目标程序集和模块的属性的。程序集和模块充当类型的物理容器。程序集可以包含若干个在物理上分离的模块。
namespace-member-declarations
namespace-member-declarations是用来为一个称为“全局命名空间”的单个声明空间提供成员的。例如:
```csharp
文件A.cs:
class A { }
文件B.cs:
class B { }
```
这两个编译单元是为该全局命名空间提供成员的,在本例中它们分别声明了具有完全限定名A和B的两个类。由于这两个编译单元为同一声明空间提供成员,因此如果它们分别包含了一个同名成员的声明,将会是个错误。
2015-06-15 上传
2009-04-01 上传
2018-08-11 上传
2018-03-01 上传
2008-08-04 上传
2012-08-13 上传
2011-09-10 上传
2009-11-26 上传
wuxiaopeng123_
- 粉丝: 0
- 资源: 1
最新资源
- Ansys Comsol实现力磁耦合仿真及其在电磁无损检测中的应用
- 西门子数控系统调试与配置实战案例教程
- ELM多输出拟合预测模型:简易Matlab实现指南
- 一维光子晶体的Comsol能带拓扑分析研究
- Borland-5技术资料压缩包分享
- Borland 6 技术资料分享包
- UE5压缩包处理技巧与D文件介绍
- 机器学习笔记:深入探讨中心极限定理
- ProE使用技巧及文件管理方法分享
- 增量式百度图片爬虫程序修复版发布
- Emlog屏蔽用户IP黑名单插件:自定义跳转与评论限制
- 安装Prometheus 2.2.1所需镜像及配置指南
- WinRARChan主题包:个性化你的压缩软件
- Neo4j关系数据映射转换测试样例集
- 安装heapster-grafana-amd64-v5-0-4所需镜像介绍
- DVB-C语言深度解析TS流