.NET中的析构函数对垃圾回收机制究竟有何具体影响?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1932个文字,预计阅读时间需要8分钟。
这里阐述构造函数,实际上并不准确,应称其为Finalize函数。Finalize函数的格式上与C++中的析构函数相似,都是(~ClassName)的形式,但功能上却完全不同。析构函数在对象生命周期结束时自动调用,用于释放资源,而Finalize函数则是在垃圾回收器介入时被调用,用于执行特定的清理工作。编译成IL语言后,Finalize函数会变成一个F函数。
这里说析构函数,其实并不准确,应该叫Finalize函数,Finalize函数形式上和c++的析构函数很像 ,都是(~ClassName)的形式,但是功能上完全不一样。析构函数编译成il语言后会变成一个Finalize的函数,他是重写的object的Finalize虚函数,标题上用析构函数,主要是我认为很多人不知道Finalize函数。
写一个类型解释下可能会更通俗易懂一点:
public class Test
{
~Test() { } //这个就是Finalize函数
private byte[] b = new byte[10000];
}
最近看了一些代码,有不少用Finalize函数的。
本文共计1932个文字,预计阅读时间需要8分钟。
这里阐述构造函数,实际上并不准确,应称其为Finalize函数。Finalize函数的格式上与C++中的析构函数相似,都是(~ClassName)的形式,但功能上却完全不同。析构函数在对象生命周期结束时自动调用,用于释放资源,而Finalize函数则是在垃圾回收器介入时被调用,用于执行特定的清理工作。编译成IL语言后,Finalize函数会变成一个F函数。
这里说析构函数,其实并不准确,应该叫Finalize函数,Finalize函数形式上和c++的析构函数很像 ,都是(~ClassName)的形式,但是功能上完全不一样。析构函数编译成il语言后会变成一个Finalize的函数,他是重写的object的Finalize虚函数,标题上用析构函数,主要是我认为很多人不知道Finalize函数。
写一个类型解释下可能会更通俗易懂一点:
public class Test
{
~Test() { } //这个就是Finalize函数
private byte[] b = new byte[10000];
}
最近看了一些代码,有不少用Finalize函数的。

