> 文章列表 > 命名空间和程序集

命名空间和程序集

命名空间和程序集

目录

一、什么是命名空间

1. 命名空间的作用

 2. 命名空间跨文件伸展

3.嵌套命名空间 

 二、using指令

1. using命名空间指令

2. using别名指令

三、程序集的结构

1. 程序集标识符

2.强命名程序集


一、什么是命名空间

1. 命名空间的作用

  1. 命名空间是共享命名空间名的一组类和类型。
  2. 同一个命名空间中的每个类的名称不能相同。
  3. 命名空间名是一个字符串(字符串中可以使用点),它加在类名或类型名前面使用点分隔。

  1. 合理使用命名空间名称可以有效降低类名冲突。
  2. 命名空间名称可以是任何有效标识符。
  3. 命名空间名称中可以使用英文句号。

 

 2. 命名空间跨文件伸展

  1. 命名空间不是封闭的,可以在不同的源文件中声明相同的命名空间。
  2. 包含相同名称的命名空间的源文件可以被编译成同一个程序集。
  3. 包含相同名称的命名空间的源文件可以被编译成不同的程序集。

 

3.嵌套命名空间 

命名空间可以嵌套,但命名空间仍是互相独立的。

  1. 原文嵌套:直接把命名空间放在另一个命名空间内部。
  2. 分离的声明:声明时使用完全限定名来表示嵌套。

 二、using指令

using命名空间指令和using别名指令可以避免使用长长的命名空间的完全限定名。

  1. 它们必须放在源文件顶端,在任何类型声明之前。
  2. 它们应用于当前源文件中的所有命名空间。

1. using命名空间指令

格式:

举例:

  

2. using别名指令

using别名指令允许起一个别名给:命名空间或命名空间内的一个类型。

格式:

举例:

 

三、程序集的结构

 程序集的文件扩展名通常为.exe或.dll

程序集代码文件称为模块。含多个模块的程序集中一个文件是主模块,其余是次要模块。

1. 程序集标识符

 程序集标识符由4个组成部分,它们一起唯一标识了该程序集。

  1. 简单名:只是不带文件扩展名的文件名,也被称为程序集名或友好名称。
  2. 版本号:形式为MajorVersion.MinorVersion.Build. Revision,例如2.0.35.9。
  3. 文化信息:2~5个字符串,表示语言、国家、或地区。
  4. 公钥:128字节字符串,生产该程序集的公司唯一的。

2.强命名程序集

强命名程序集有一个唯一的数字标签,比没有强命名程序集安全

  1. 强名称唯一标识了程序集。
  2. 没有CLR安全组件来捕获更改,强命名程序集的内容不能改变。
  3. 强命名由编译器生成。

(注:本内容学习总结自《C#图解教程》)