我有此代码:
Method1(Method2());
但是,Method2返回需要处理的对象。这是我的处理方法:
using (var x = Method2())
{
await Method1(x);
}
Method1和Method2属于框架,我不能更改它们。
我有很多这样的情况。例如,Method2创建HTTP请求,然后Methid1发送该请求。
同样,这两种方法都属于我无法更改的库。
我知道如果不处理对象,则垃圾收集器最终会这样做。可能不会很快。 我在徘徊,如果万一没有引用该对象的任何变量(如Method1返回后那样),我可以指望垃圾回收器立即处理该对象,因此可以使用原始对象短选项。
答案 0 :(得分:2)
使用using
语句,就像您显示的那样,是的,这是一种优雅的方式
using (var something = Method2())
{
Method1(something);
}
或者如果愿意
using (var something = Method2())
Method1(something);
其他任何事情都将是异常且令人困惑的(即,将其放置在您的method1中)...正如评论所指出的那样,除非这是某种Command / Query Service或其他可以通过一次性作用域注入的依赖项
最近,在任何事情上致电wait
都是可疑的