在此示例链接....
https://stackoverflow.com/a/19737565/2948523
我发现了一些像 〜ImprovedClass() 〜内()
请帮帮我,他们是什么?为什么以及如何在代码中使用它们
class Inner
{
public Inner(IntPtr unkOuter)
{
}
~Inner()
{
}
}
public class ImprovedClass
{
// constructor
public ImprovedClass()
{
}
~ImprovedClass()
{
}
}
答案 0 :(得分:3)
这是一个析构函数Destructors
它们用于释放对象可能仍然保留的资源,即使它已不再使用。
答案 1 :(得分:2)
这些被称为析构函数,它们在实例的类实例生命结束时自动调用。您可以在此处编写代码以释放对象使用的一些资源。以下是关于析构函数的一些评论:
这是一些指南 http://msdn.microsoft.com/en-us/library/vstudio/66x5fx1b.aspx
答案 2 :(得分:0)
~mark用于析构函数而不是构造函数。
使用非托管资源(如句柄和数据库)时 连接,你应该确保它们被保持在最低限度 使用延迟收购和早期释放原则的时间量。 在C ++中,释放资源通常在析构函数中完成, 确定性地在对象所在的点运行 删除。但是,.NET运行时使用垃圾收集器(GC) 清理并回收不再使用的对象所使用的内存 到达;因为它定期运行,这意味着点 你的对象被清理是不确定的。结果 这是因为那里的托管对象不存在析构函数 没有确定性的地方来运行它们。