C#中using关键字的作用及用法

using的用途和使用技巧.

  1、 引用命名空间

  2、 为命名空间或类型创建别名

  3、 使用using语句

  1、 引用命名空间,这样可以在程序中引用命名空间的类型而不必指定详细的命名空间.

    a) 比如在程序中常用的using System.Text;

    b) 引用命名空间,并不等于编译器编译时加载该命名空间所在的程序集,程序集的加载决定于程序中对该程序集是否存在调用操作,如果代码中不存在任何调用操作则编译器将不会加载using引入命名空间所在空间的程序集.因此,在源文件开头,引入多个命名空间,并非加载多个程序集,不会造成’过度引用’的弊端

  2、 为命名空间或类型创建别名

      创建别名的原因在于同一个文件中引入不同的命名空间中包括了相同名称的类型。为了避免出现名称冲突,可以通过设定别名来解决.

        例:using SGPoint = ShapMap.Geometries.Point

        Using SGPoint = System.Drawing.Point

      其实也可以通过类型全名称来加以区分,但是最佳解决方案还是使用using

  3、 using 语句

    using语句允许程序员指定使用资源的对象应当何时释放资源.using语句中使用的对象必须实现IDisposable接口.此接口提供了Dispose方法,该方法将释放此对象的资源

使用规则:

      a) using语句只能用于实现了IDisposable接口的类型,禁止为不支持IDisposable接口类型使用using语句,否则会出现编译错误

      b) using语句适用于清理单个非托管资源的情况,而多个非托管对象的清理最好以try-finaly来实现,因为嵌套using语句可能存在隐藏的Bug.内层using块引发异常时,将不能释放外层using块的对象资源

using实质:

在程序编译阶段,编译器会自动将using语句生成try-finally语句,并在finally块中调用对象的Dispose方法,来清理资源.所以,using语句等效于try-finally语句