【发布时间】:2010-12-31 12:43:08
【问题描述】:
我对学习 C#(来自 Java 和 C++ 背景)相当陌生,并且我有一个关于手动垃圾处理的问题:甚至可以在 C# 中手动销毁对象吗?我知道IDisposable 接口,但假设我正在处理一个我没有编写并且它没有实现它的类?它不会有 .Dispose() 方法,因此 using { } 已退出,.Finalize 始终是 protected 或 private,所以这也不是一个选项。
(在这种情况下,我只是想了解 C# 中的可能。我想如果所有其他方法都失败了,我可以继承假设的 ImNotDisposable 类,以便它确实实现了 IDisposable。)
【问题讨论】:
-
也许你应该澄清这个问题:你想完全释放一个对象,还是只强制执行它的析构函数并清理对象的资源(只)?
-
我认为一个暗示了另一个,但我想到的是某种方式来“触发”一个对象具有的 ~ClassName() 方法。
-
所以总而言之,GC 有 Collect() 方法,它几乎是全有或全无,而不是针对特定对象的任何方法。明白了。 :)
标签: c# destructor idisposable using