1、作为指令,用于为命名空间创建别名或导入其它命名空间中定义的类型
①.允许在命名空间中使用类型,这样,您就不必在该命名空间中限定某个类型的使用:
using System.Text;
②.为命名空间或类型创建别名。
using Project = PC.MyCompany.Project;
using 指令的范围限制为包含它的文件。
创建 using 别名,以便更易于将标识符限定到命名空间或类型。
创建 using 指令,以便在命名空间中使用类型而不必指定命名空间。using 指令不为您提供对嵌套在指定命名空间中的任何命名空间的访问。
命名空间分为两类:用户定义的命名空间和系统定义的命名空间。用户定义的命名空间是在代码中定义的命名空间。
2、作为语句,用于定义一个范围,在此范围的末尾将释放对象
using 语句允许程序员指定使用资源的对象应当何时释放资源。为 using 语句提供的对象必须实现 IDisposable 接口。此接口提供了 Dispose 方法,该方法将释放此对象的资源。
可以在到达 using 语句的末尾时,或者在该语句结束之前引发了异常并且控制权离开语句块时,退出 using 语句。
using的本质
在程序编译阶段,编译器会自动将using语句生成为try-finally语句,并在finally块中调用dispose方法,来清理资源