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语句可以等程序执行完自动释放资源。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值