倔强的土豆

这只是一个备份!源地址:http://blog.csdn.net/stubbornpotatoes
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

using的几种用法

Posted on 2011-06-08 21:34  倔强的土豆  阅读(482)  评论(2编辑  收藏  举报

  在C#中using一般有两种称谓,第一种是using指令,另一种是using语句;称谓不一样他们的用途也是不一样的,作为指令,它用于为命名空间创建别名或导入其他命名空间中定义的类型,详见MSDN,解释的非常清楚。

  而他作为语句,用于定义一个范围,当程序执行完此范围的代码后,将此范围中的对象在末尾释放掉。

  比如,

using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
    dt.Load(sdr); //此处用到sdr对象
}  //此处释放sdr对象,并关闭connection对象连接

  在这段代码中,sdr对象包含在小括号中,说明当using下的这段代码不管是执行成功或失败,只要离开了这段代码,会自动调用sdr对象的Dispose方法。CommandBehavior.CloseConnection的作用是当command对象释放时,connection也跟着关闭。它跟下面这段代码效果是一致的:

Try
conn.Open()
Return cmd.ExecuteNonQuery()
cmd.Parameters.Clear()
Catch ex As Exception
Return False
Finally
'关闭数据库连接,销毁cmd对象
If Not IsNothing(conn) Then
conn.Close()
conn
= Nothing
End If
If Not IsNothing(cmd) Then
cmd.Dispose()
cmd
= Nothing
End If
End Try