应该使用"使用"声明吗?

xai*_*oft 4 c# dapper micro-orm

我见过有人在做的例子:

IDbConnection db = new MySqlConnection(conn);

var people = db.Query<People>("SELECT * FROM PEOPLE").ToList();
Run Code Online (Sandbox Code Playgroud)

或者上面是一个不好的做法,并且所有查询都应该使用如下语句:

using (var db = new MySqlConnection(conn))
{
var people = db.Query<People>("SELECT * FROM PEOPLE").ToList();
}
Run Code Online (Sandbox Code Playgroud)

Eri*_*ert 11

正如其他人已经正确指出的那样,一般的最佳实践是在using对象实现的任何时候使用,IDisposable并且您知道对象的生命周期将会很短 - 也就是说,不会超过当前方法的持续时间.这样做可确保及时清理稀缺的操作系统资源.即使对象的处理由其终结器"支持",您也不希望处于这样的情况:例如,您对文件或数据库有锁定,或者在终结器运行几次之前不会释放从现在起十亿纳秒.

但是,我会通过说IDisposable除了及时处理非托管资源之外的其他原因而实施少量类型的建议.在某些特定情况下,您可以安全地跳过using.然而,这几乎是从来没有错的使用using,即使它不是严格意义上讲必要的,所以我给你的建议是要慎之又慎的侧面和过度使用,而不是下使用using.


Mar*_*ell 7

Dapper对此没有看法; 你在using这里是数据库连接.如果您已完成连接:您已完成连接.基本上,是的,你可能应该使用using.