例如,给出这个声明:
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实例是否存在?
解决方法I want to use the
using
statement purely for scope management.
您应该使用using语句来实现它的目的:及时处理非托管资源.如果那不是您正在使用的,那么您可能做错了什么.
Can I omit holding an explicit reference to the underlying object that implements
Idisposable
?
正如另一个答案所指出的那样:你已经输入了代码;你可以简单地尝试一下.
是的,你可以这样做.编译器将为您创建一个不可见的局部变量,并在其上调用dispose.
我建议如果您对使用它的使用有进一步的疑问,请阅读C#4规范的第8.13节.
总结以上是内存溢出为你收集整理的c# – 我可以使用带有RHV的语句(右手值)吗?全部内容,希望文章能够帮你解决c# – 我可以使用带有RHV的语句(右手值)吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)