假设我有一个方法foo
返回一个ValueTuple
其中一个成员是一次性的,例如(IDisposable, int)
.
确保在调用方正确处理返回的一次性对象的最佳方法是什么?
我尝试了以下方法:
using (var (disposable, number) = foo())
{
// do some stuff using disposable and number
}
但这不会编译:
'(IDisposable 一次性,int number)':在 using 语句中使用的类型必须隐式转换为 'System.IDisposable'
我真的需要将我的代码包装在一个 try-finally 块中并在 finally 块中显式地处理我的对象,还是有更好的方法来做到这一点?
实际上,我希望看到新的 ValueTuples 实现IDisposable
接口并调用Dispose()
它们所有的一次性成员。这对微软来说是一个有价值的功能请求吗?