命名空间和程序集
目录
一、什么是命名空间
1. 命名空间的作用
2. 命名空间跨文件伸展
3.嵌套命名空间
二、using指令
1. using命名空间指令
2. using别名指令
三、程序集的结构
1. 程序集标识符
2.强命名程序集
一、什么是命名空间
1. 命名空间的作用
- 命名空间是共享命名空间名的一组类和类型。
- 同一个命名空间中的每个类的名称不能相同。
- 命名空间名是一个字符串(字符串中可以使用点),它加在类名或类型名前面使用点分隔。
- 合理使用命名空间名称可以有效降低类名冲突。
- 命名空间名称可以是任何有效标识符。
- 命名空间名称中可以使用英文句号。
2. 命名空间跨文件伸展
- 命名空间不是封闭的,可以在不同的源文件中声明相同的命名空间。
- 包含相同名称的命名空间的源文件可以被编译成同一个程序集。
- 包含相同名称的命名空间的源文件可以被编译成不同的程序集。
3.嵌套命名空间
命名空间可以嵌套,但命名空间仍是互相独立的。
- 原文嵌套:直接把命名空间放在另一个命名空间内部。
- 分离的声明:声明时使用完全限定名来表示嵌套。
二、using指令
using命名空间指令和using别名指令可以避免使用长长的命名空间的完全限定名。
- 它们必须放在源文件顶端,在任何类型声明之前。
- 它们应用于当前源文件中的所有命名空间。
1. using命名空间指令
格式:
举例:
2. using别名指令
using别名指令允许起一个别名给:命名空间或命名空间内的一个类型。
格式:
举例:
三、程序集的结构
程序集的文件扩展名通常为.exe或.dll
程序集代码文件称为模块。含多个模块的程序集中一个文件是主模块,其余是次要模块。
1. 程序集标识符
程序集标识符由4个组成部分,它们一起唯一标识了该程序集。
- 简单名:只是不带文件扩展名的文件名,也被称为程序集名或友好名称。
- 版本号:形式为MajorVersion.MinorVersion.Build. Revision,例如2.0.35.9。
- 文化信息:2~5个字符串,表示语言、国家、或地区。
- 公钥:128字节字符串,生产该程序集的公司唯一的。
2.强命名程序集
强命名程序集有一个唯一的数字标签,比没有强命名程序集安全
- 强名称唯一标识了程序集。
- 没有CLR安全组件来捕获更改,强命名程序集的内容不能改变。
- 强命名由编译器生成。
(注:本内容学习总结自《C#图解教程》)