using 关键字

using 关键字常见的有三种用途;

1.导入命名空间,以便在命名空间中使用类型而不必指定命名空间。 (最简单,最常见)

   如:using System;

   一般来说,导入的命名空间应该在本工程内,或者引用了该命名空间的包。

2.创建using 别名,以便更易于将标识符限定到命名空间或类型。 (不常用)

  如:using print = System.Console;

  这样如果我们想输出东西到控制台的话,可以直接写成:print.WriteLine("HELLO");

  不定义别名的写法是:Console.WriteLine("HELLO");

  其实两者差不多,呵呵,例子比较简单,这种写法不是很常见。

  注意:

  1)别名(本例中位print)后面可以是命名空间,也可以是命名空间下的对象。

  2)创建using别名的语句必须写在引用类的外部。

3. using 语句,定义一个范围,将在此范围之外释放一个或多个对象。 (常用)

   一般来说,CLR会自动在对象不被引用后执行垃圾回收,释放资源。但是,这样回收具有不确定性,有些时候,我们希望执行完以后马上就把资源回收,而不是等CLR来做。比如在网络连接,文件句柄等资源有限的情况下,这时候就可以用using 语句了。

   比如:

  using (TransactionScope tran = new TransactionScope()){}

  此语句相当于一个try/finally语句,在try里面执行完(不管是否抛异常),都会执行一些操作。

  注意:

 1)为 using 语句提供的对象必须实现 IDisposable 接口。此接口提供了 Dispose 方法,该方法将释放此对象的资源。

  测试代码:

 

代码
    class Program
    {
        
static void Main(string[] args)
        {
            
using (LimitedResource lr = new LimitedResource()) 
            {
                lr.Print();
            }
            Console.ReadLine();
        }
    }

    
/// <summary>
    
/// 测试类
    
/// </summary>
    class LimitedResource : IDisposable
    {
        
public void Print() 
        {
            Console.WriteLine(
"Using limited resource...");
        }

        
/// <summary>
        
/// 此方法关闭或释放由实现此接口的类的实例保持的文件、流和句柄等非托管资源
     /// </summary>
        public void Dispose() 
        {
            Console.WriteLine(
"Disposing limited resource...");
        }
    }

 

原文地址:https://www.cnblogs.com/liaozh/p/1641521.html