终止化操作.txt

来自「C# 是创新性的新式编程语言」· 文本 代码 · 共 27 行

TXT
27
字号
任何封装了非托管资源的类型,要提供终止化操作必须实现Finalize方法。

C#中定义Finalize特殊语法。析构器.
~OSHandle()
{
	CloseHandle(handle);
}

注意CLR/C#不支持确定析构,
Finalize只有在垃圾收集执行时被调用.
它不会在一个方法退出、或对象超出作用域被调用。

只有纯C++支持确定性析构。

设计一个类型尽可能避免使用Finalize方法。


我们不能控制Finalize方法的执行。对象可能一直占用着非托管的资源,直到垃圾收集出现。

调用Finalize方法的条件
.第0代对象充满。
.显示调用System.GC的静态方法Collect
.CLR 卸载应用程序域
.CLR 被关闭


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?