首先你要先去理解两个概念:托管资源(类型)、非托管资源(类型)
这两个概念都涉及一个问题,垃圾回收(以后会晓得他的重要性的)
托管资源释放问题不用我们去考虑,只要其超出了其作用域,垃圾回收器将自动对其使用的资源进行回收。其类型有GCType类型、值类型等……
非托管资源就不一样了,垃圾回收其不知道如何释放非托管资源,需要显示地去释放该类资源。
如何区别托管资源与非托管资源呢?
一个很简单的方法:查看该类是否有Dispose方法,即该类是否实现了IDispose接口。这个只是其中一个方法,并不是百分百正确。
还有其他一些类引用了非托管资源,他们虽没有实现IDispose接口,但他们仍然有释放非托管资源的需求。
那现在要了解的问题就是如何释放非托管资源?
最直接的方法就是调用Dispose方法即可,但是有一个问题,如果托管类中只用非托管资源或者我们不晓得哪个是非托管资源,这个就要使用你所提出的using方法了
using(创建的实例,可用于单个也可以多个,但类型必须一样,用逗号隔开)
{
//这个花括号是实例的作用范围,超出这个范围将回收其资源
}
总之一句话:一切都是为了安全
就是创建一个SqlConnection对象,在离开using块的时候(也就是离开这个using的花括号范围),调用这个创建的对象的Dispose方法来销毁对象,可以保证不会忘记释放这个对象造成资源泄露
链接数据库的吧,sqlconnection是个类吧,你要是不懂可以查看他的定义,zcon应该是链接数据库的字符,比如说服务器是什么,用户名,密码,驱动,等等信息的,
和 try catch一样 从VS2005起才有(好像)。 使用using比传统的try catch更简单,出using的“{}”域会自动dispose() close ()
实例化一人对象!