如何调用析构函数[重复]
Posted
技术标签:
【中文标题】如何调用析构函数[重复]【英文标题】:How to call Destructor [duplicate] 【发布时间】:2017-01-30 18:28:27 【问题描述】:我知道当不再使用对象时,垃圾收集器会调用析构函数。 但是我想知道
如何通过c#代码调用析构函数?
如果可能,请举一些基本的例子来帮助理解。
【问题讨论】:
你有没有费心去谷歌这个? 你认为为什么需要调用析构函数? 您几乎肯定不需要拥有终结器(C# 没有析构函数,只有终结器),更不用说手动调用它了。你几乎肯定应该只有一个Dispose
方法,并且你应该手动调用那个。
另一种选择是将其包装在 using
语句中,以便自动处理
【参考方案1】:
您不会在 .NET 中调用析构函数 托管堆仅由 CLR 和 CLR 处理。
但是,您可以为类定义析构函数,一旦对象被 GC 收集,就会调用析构函数
class Foo
public Foo()
Console.WriteLine("Constructed");
~Foo()
Console.WriteLine("Destructed");
请注意,析构函数前面没有(也不能)有公共修饰符,这有点暗示您不能显式调用对象的析构函数。
【讨论】:
【参考方案2】:你可以看看Destructor Microsoft docs。
您需要声明一个与类名同名但带有前导“~”符号的函数。
【讨论】:
问题是怎么称呼,不是现在定义。以上是关于如何调用析构函数[重复]的主要内容,如果未能解决你的问题,请参考以下文章