在不使用的情况下退出方法时处置所有 IDisposables?

Dispose all IDisposables when exiting the method without using?

可能是我太懒了,但是嵌套在一个方法中的using会使方法看起来复杂难懂。有什么方法可以让方法中创建的所有 IDisposable 对象在异常退出方法时自动释放?


PS。感谢您的反馈。我现在知道现在没有这样的功能。但是,从理论上讲,以下假设的语法是否合理?

void SomeMethod()
{
     autodispose var com = new SQLCommand();
     ...
     autodispose var file = new FileStream();
     ....
     autodispose var something = CreateAnObjectInAMethod(); 
     ....
}

当出于任何原因退出该方法时,所有三个对象都会自动释放。

不,但你可以像这样整理一下...

这个...

using (var conn = new SqlConnection("blah"))
{
    using (var cmd = new SqlCommand("blah"))
    {
        using (var dr = cmd.ExecuteReader())
        {

        }
    }
}

变成...

using (var conn = new SqlConnection("blah"))
using (var cmd = new SqlCommand("blah"))
using (var dr = cmd.ExecuteReader())
{

}