我知道将IDbConnection对象放在using代码块中可以确保Dispose方法被调用并且它所使用的资源得到释放。话虽如此,我是否还需要将IDbCommand和IDataReader对象也放在using块中,或者仅仅将连接对象放在using块中就足够了呢?谢谢。
我知道将IDbConnection对象放在using代码块中可以确保Dispose方法被调用并且它所使用的资源得到释放。话虽如此,我是否还需要将IDbCommand和IDataReader对象也放在using块中,或者仅仅将连接对象放在using块中就足够了呢?谢谢。
using
块中并且它不是IDisposable
,则会收到语法错误。.Dispose
方法(可以在Intellisense中轻松检查),则应该将其包装。IDisposable
(可以通过“转到定义”或VS中的新“查看”功能轻松检查),则应该将其包装。IDbCommand
实现了IDisposable
,因此应使用using
块处理。.Close()
或类似方法),但这仍然是一种合理的检查方式。最终我总是会检查接口(#3),但其他方法偶尔也很有用。 - Dan Puzey