![](/img/trans.png)
[英]Using C#'s 'using' statement with a custom object's function, do I Need to implement IDisposable?
[英]Does C#/VB.NET using statement actually do anything with classes that do not implement IDisposable
如果我有类似以下内容:
public class Myclass{
//some resources
}
然后在另一堂课中,我执行以下操作:
using(Myclass myclass = new Myclass()) {
// do things with myclass instance
}
在这种情况下,using语句是否实际提供任何使用? Myclass
尚未实现IDisposable
接口,因此没有要调用的Dispose()
方法。 我在正确考虑吗?
如果您的类未实现IDisposable
则不能在using
语句中使用它。 这将是编译时错误。
除此之外, using
语句转换为try-finally
块,并在using语句结束时调用Dispose
(即使在发生异常的情况下) 。 CLR 实际处置对象没有什么神奇的事情,这完全取决于Dispose
的实现。 您可以有一个空的Dispose
方法实现,并且不会起作用。
您不能与不能实现IDisposable
类型一起using
。 您将得到一个编译器错误。 而已。
IDisposable
接口。 IDisposable
接口... 这是您遇到的CS1674编译器错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.