c# – 我可以使用带有RHV的语句(右手值)吗?
发布时间:2020-12-15 04:06:56 所属栏目:百科 来源:网络整理
导读:我想使用using语句纯粹用于范围管理.我是否可以省略对实现IDisposable的底层对象的显式引用? 例如,给出这个声明: class ITransactionScope : IDisposable {}class TransactionGuard : ITransactionScope {...}class DbContext{ public IDisposable ITransa
我想使用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 } } 在使用语句期间,TransactionGuard实例是否存在? 解决方法
您应该使用using语句来实现它的目的:及时处理非托管资源.如果那不是您正在使用的,那么您可能做错了什么.
正如另一个答案所指出的那样:你已经输入了代码;你可以简单地尝试一下. 是的,你可以这样做.编译器将为您创建一个不可见的局部变量,并在其上调用Dispose. 我建议如果您对使用它的使用有进一步的疑问,请阅读C#4规范的第8.13节. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |