C#命名空间和编译单元详解
需积分: 15 101 浏览量
更新于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 上传
2018-08-11 上传
2011-01-06 上传
2008-08-04 上传
2018-03-01 上传
2011-09-10 上传
2012-08-13 上传
2011-11-21 上传
wuxiaopeng123_
- 粉丝: 0
- 资源: 1
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载