C#入门系列(二十六) -- 程序集和命名空间

554 阅读3分钟

这是我参与8月更文挑战的第26天,活动详情查看:8月更文挑战

程序集

程序集是包含一个或者多个类型定义文件和资源文件的集合。

  程序集是.NET框架应用程序的主要构造块。所有托管类型和资源都包含在某个程序集内, 并被标记为只能在该程序集的内部访问,或者被标记为可以从其他程序集中的代码访问。

进行项目开发时,程序员可以使用已有类库中的类或类型,同样可以创建自己的类库。这些类库文件通常以.dll为扩展名,称为程序集。

使用已有的程序集或创建并使用自己的程序集是大规模程序设计中不可或缺的环节。

  在程序集包含的所有文件中,有一个文件用于保存包含了程序集中一部分文件的名称、程序集的版本、语言文化、发布者、共有导出类型、以及组成该程序集的所有文件的程序集信息清单。


命名空间

为了解决程序集和类型之间的命名冲突问题,C#提供了使用命名空间对类型进行组织的机制。

命名空间是用来组织和重用代码的编译单元,是共享命名空间名称的一组类和类型。每个命名空间具有与其他命名空间不相同的唯一名称。

命名空间的声明语法形式如下:

namespace 命名空间名
{
    命名空间成员
}

命名空间的成员即命名空间中包括的类和类型,命名空间中包含的所有的类和类型的声明必须放在命名空间声明的大括号内。

命名空间名是一个字符串,该字符串中可以包含‘.’字符,’.’字符加在类名或类型名的前面进行信息分隔和层次组织。

命名空间命名规则:

  1. 命名空间名称可以是任何有效的标识符;
  2. 一般使用公司名作为命名空间名的开始,在公司名后跟着技术名称;
  3. 不要把命名空间命名为与类或类型相同的名称。

命名空间的嵌套声明有两种语法形式:

//形式1
namespace 命名空间名1
{
  命名空间1的成员
  
  namespace 命名空间名2{
    命名空间2的成员
  }
}

//形式2
namespace 命名空间名1
{
  命名空间1的成员
}
namespace 命名空间名1.命名空间名2
{
  命名空间2的成员
}

using的几种用法

  1. using指令:引入命名空间:
using System;
using System.Collections;
  1. using static 指令:指定无需指定类型名称即可访问其静态成员的类型
using static System.Math; // 直接使用System.Math.PI

double pai = PI;
  1. 起别名
using Project = PC.MyCompany.Project;
  1. using语句:将实例与代码绑定
using (Book b1 = new Book("aaa", 15.0f),
            b2= new Font("bbb", 20.0f))
{
    // Use b1 and b2
}

代码段结束时,自动调用b1和b2的Dispose方法,释放实例。