返回从方法值内 using语句是得到一个DataContext似乎总是工作精细,就像这样:
public static Transaction GetMostRecentTransaction(int singleId)
{
using (var db = new DataClasses1DataContext())
{
var transaction = (from t in db.Transactions
orderby t.WhenCreated descending
where t.Id == singleId
select t).SingleOrDefault();
return transaction;
}
}
Run Code Online (Sandbox Code Playgroud)
但是我总是觉得在打破使用括号之前我应该关闭一些东西,例如在using语句之前定义事务,在括号内获取它的值,然后在括号后返回.
将变量定义并返回到使用括号之外是更好的做法还是以任何方式保存资源?
我注意到泛型IEnumerator<T>继承自IDisposable,但非通用接口IEnumerator没有.为什么这样设计?
通常,我们使用foreach语句来遍历IEnumerator<T>实例.生成的foreach代码实际上有try-finally块,最终调用Dispose().