在不使用的情况下退出方法时处置所有 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())
{
}
可能是我太懒了,但是嵌套在一个方法中的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())
{
}