我有一个方法,其中包含一个 try/catch/finaly
块。在 try 块内部,我声明了一个 SqlDataReader
如下:
SqlDataReader aReader = null;
aReader = aCommand.ExecuteReader();
在finally
块中,手动处理的对象是那些在类级别上设置的对象。那么实现了IDisposable
接口的方法中的对象(如上面的SqlDataReader
)是否会自动被处理呢?在循环执行以获取读取器内容之后,会在aReader
上调用Close()
方法(应该使用Dispose()
方法,因为该方法会调用Close()
方法)。如果没有调用Close()
方法,当方法完成或对象超出作用域时,此对象是否会被自动关闭/处理?
编辑:我知道using
语句,但有一些情况让我感到困惑。