Byr*_*ahl 18 c# idisposable using-statement
如果我有一个像这样的使用块的方法...
public IEnumerable<Person> GetPersons()
{
using (var context = new linqAssignmentsDataContext())
{
return context.Persons.Where(p => p.LastName.Contans("dahl"));
}
}
Run Code Online (Sandbox Code Playgroud)
...从using块中返回值,IDisposable对象是否仍然处理?
Jar*_*Par 29
是的,它确实.对象的处理发生在finally块中,该块甚至在返回调用的情况下也执行.它基本上扩展为以下代码
var context = new linqAssignmentsDataContext();
try {
return context.Persons.Where(p => p.LastName.Contans("dahl"));
} finally {
if ( context != null ) {
context.Dispose();
}
}
Run Code Online (Sandbox Code Playgroud)