using

  • 作为指令:用于为命名空间创建别名或导入在其他命名空间中定义的类型。 请参阅 using 指令
  • 作为语句:用于定义一个范围,在此范围的末尾将释放对象。 请参阅 using 语句

此外,使用 using 静态指令可定义一种类型,在未指定类型名称的情况下即可访问该类型的静态成员。


using 语句(C# 参考)

using 语句(C# 参考)

————————————————————————————————————————————————————


看不太懂!!!直接看例子!!!



c#里的USING语句是什么意思


using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
dt.Load(sdr);
}



使用using语句最终生成的其实是一个try, finally代码块,在finally代码块里释放资源。要求是:为 using 语句提供的对象必须实现 IDisposable 接口。此接口提供了 Dispose 方法,该方法将释放此对象的资源。

你的问题其实可以这样解释:

在using中其实打开了一个数据库连接,然后从数据库中读取了某些数据,最后不管读取是否成功,都应该把这个数据库连接关闭掉。
传统的写法应该是在try块里打开连接并且读取,在finally块中把连接关闭掉,而由于你的sdr对象实现了IDisposable接口,所以C#允许你用using语句来代替这种写法,其实这就是一种语法糖,一种简便写法而已。

当程序运行完这个代码块(超出大括号的范围)后,sdr就会被自动关闭掉。


————————————————————————————————————————————————————————