CLR 如何找到实现 IDisposable 的类?
我需要一些澄清...
... CLR(更具体地说,垃圾收集器)如何找到实现 IDisposable 接口的类;
…它如何调用
Dispose
方法(所有实现了IDisposable
接口的类)来释放内存?
I need some clarification on…
… how the CLR — more specifically, the garbage collector — finds the classes which implement the
IDisposable
interface; and… how it calls the
Dispose
method (of all classes which implement theIDisposable
interface) to free up memory?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
CLR 不会调用 Dispose(),这由用户代码直接调用或通过使用
using
语句调用。但是,CLR 将调用终结器< /a>,尽管这没有得到保证。The CLR does not call Dispose(), this is up to user code to call either directly or through the use of the
using
statement. The CLR will however call finalizers, although this is not gauranteed.Dispose
不会自动调用。当您编写using
或直接调用Dispose
时,编译器会生成对Dispose
的调用。Dispose
is not called automatically. The compiler generates calls toDispose
when you writeusing
, or callDispose
directly.