我可以将using语句与RHV(右手值)一起使用吗
本文关键字:一起 右手 using 语句 RHV 我可以 | 更新日期: 2023-09-27 18:29:57
我想将using
语句纯粹用于范围管理。我可以省略对实现IDisposable
的底层对象的显式引用吗?
例如,给出以下声明:
class ITransactionScope : IDisposable {}
class TransactionGuard : ITransactionScope {...}
class DbContext
{
public IDisposable ITransactionScope()
{
return new TransactionGuard();
}
}
我可以做以下事情吗:
void main()
{
var dbContext = new DbContext();
using (dbContext.TransactionScope())
{
// the guard is not accessed here
}
}
using
语句期间TransactionGuard
实例是否处于活动状态?
我想将
using
语句纯粹用于范围管理。
您应该将using
语句用于它的设计目的:及时处置非托管资源。如果这不是你使用using
的目的,那么你可能做错了什么。
我可以省略对实现
IDisposable
的底层对象的显式引用吗?
正如另一个答案所指出的:你已经输入了代码;你可以试一下。
是的,你可以做到。编译器将为您创建一个不可见的局部变量,并对其调用Dispose
如果您对using
的使用有进一步的疑问,我建议您阅读C#4规范的8.13节。
在你处理掉它之前,它是活着的。
只需点击编译和运行按钮,就可以更容易地回答这类问题。你已经键入了代码。试试看。