我是 C# 的新手,我实际上了解析构函数和 dipose 方法的概念以及它们之间的区别以及实际上如何从这些操作中调用/阻止 GC。但是当我试图了解我们在这些方法中实际发布的内容时,我陷入了困境。
首先,仅仅定义一个空的析构函数或控制台输出不会对释放未使用的内存有任何好处。那么我应该在析构函数中写什么,或者将类的字段设置为 null 还是什么?我知道 GC 会处理托管资源,那么如果我遇到非托管资源怎么办
我通常在论坛和搜索中都能找到这个熟悉的例子,但没有一个人清楚应该写什么来释放未使用的内存
class Test : IDisposable
{
private bool isDisposed = false;
~Test()
{
Dispose(false);
}
protected void Dispose(bool disposing)
{
if (disposing)
{
// Code to dispose the managed resources of the class
}
// Code to dispose the un-managed resources of the class
isDisposed = true;
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}
我理解这个例子,但是什么代码应该出现在 dispose 方法内的注释行中(// 用于处理类的托管资源的代码 & // 用于处理类的非托管资源的代码)。有人可以给我一个可以解决我疑问的示例吗