我有这个代码:
Method1(Method2());
但是,Method2返回需要处理的对象。这是我如何处理这个:
using (var x = Method2())
{
await Method1(x);
}
Method1和Method2属于框架,我不应该更改它们。
我有很多这样的案件。例如,Method2创建HTTP请求,Methid1发送它。
同样,这两种方法都属于我无法改变的库。
我知道如果我不处理对象,垃圾收集器最终会这样做。可能不会很快。我在游荡,如果没有任何引用该对象的变量(因为它将在Method1返回后),我可以指望垃圾收集器立即处理该对象,因此可以使用原始选项短。
使用using
语句,就像你已经表明的那样,是的,它是优雅的方式
using (var something = Method2())
{
Method1(something);
}
或者如果你愿意的话
using (var something = Method2())
Method1(something);
其他任何东西都是不寻常和令人困惑的(即将它放在你的方法1中)......正如评论所指出的,除非这是某种命令/查询服务,或其他可以注入一次性范围的依赖关系
此外,在任何事情上调用wait
这些天都是可疑的