C#代码中using(...){...}的意思

#   通过   .NET   Framework   公共语言运行库   (CLR)   来自动释放用来存储不再需要的对象的内存。内存的释放具有不确定性;一旦   CLR   决定执行垃圾回收,就会释放内存。但是,通常最好尽快释放诸如文件句柄和网络连接这样的有限资源。     
   
 
using   语句允许程序员指定使用资源的对象应当何时释放资源。为   using   语句提供的对象必须实现   IDisposable   接口。此接口提供了   Dispose   方法,该方法将释放此对象的资源。   
    
可以在到达   using   语句的末尾时,或者在该语句结束之前引发了异常并且控制权离开语句块时,退出   using   语句。   
    
可以在   using   语句中声明对象,或者在   using   语句之前声明对象。

using   System;   

  class   C   :   IDisposable  
 
  {   
          public   void   UseLimitedResource()   
          {   
                  Console.WriteLine("Using   limited   resource...");   
          }   
    
          void   IDisposable.Dispose()   
          {   
                  Console.WriteLine("Disposing   limited   resource.");   
          }   
  }   
    
  class   Program   
  {   
          static   void   Main()   
          {   
                  using   (C   c   =   new   C()) 
                  {   
                          c.UseLimitedResource();   
                  }   
                  Console.WriteLine("Now   outside   using   statement.");   
                  Console.ReadLine();   
          }   
  }

 

C#特有的using语句:    
  using   (SqlConnection   conn   =   new   SqlConnection("connection   string"))  
 
  {   
  .....   
  }   
    
  在退出{...}代码块后,会自动调用conn的dispose方法,而conn的dispose方法会调用close方法   
  当然using   ()括起来的类必须实现IDisposable接口.   
  这确实是古怪的语法,我是不会用using语句的,为VB.NET程序员想想他们怎么看的懂。   
    
  相当于   
  SqlConnection   conn   =   new   SqlConnection("connection   string");   
  try   
  {   
      conn.Open();   
      .....   
  }   
  catch(...)   
  {   
  ....   
  }   
  finally   
  (   
  conn.Close();   
  }

有很多时候不知道在何时释放资源适合,用using语句可以等程序执行完自动释放资源。

你可能感兴趣的:(C#)