构造函数以类开头〜

时间:2013-11-05 11:51:32

标签: c# oop

在此示例链接....

https://stackoverflow.com/a/19737565/2948523

我发现了一些像 〜ImprovedClass() 〜内()

请帮帮我,他们是什么?为什么以及如何在代码中使用它们

            class Inner
            {
                public Inner(IntPtr unkOuter)
                {
                }

                ~Inner()
                {
                }
            }

        public class ImprovedClass 
        {
            // constructor
            public ImprovedClass()
            {
            }

            ~ImprovedClass()
            {
            }
        }

3 个答案:

答案 0 :(得分:3)

这是一个析构函数Destructors

它们用于释放对象可能仍然保留的资源,即使它已不再使用。

答案 1 :(得分:2)

这些被称为析构函数,它们在实例的类实例生命结束时自动调用。您可以在此处编写代码以释放对象使用的一些资源。以下是关于析构函数的一些评论:

  1. 无法在结构中定义析构函数。
  2. 它们仅用于课程。
  3. 一个类只能有一个析构函数
  4. 无法继承或重载析构函数。
  5. 无法调用析构函数。它们会自动调用。
  6. 这是一些指南 http://msdn.microsoft.com/en-us/library/vstudio/66x5fx1b.aspx

答案 2 :(得分:0)

~mark用于析构函数而不是构造函数。

  

使用非托管资源(如句柄和数据库)时   连接,你应该确保它们被保持在最低限度   使用延迟收购和早期释放原则的时间量。   在C ++中,释放资源通常在析构函数中完成,   确定性地在对象所在的点运行   删除。但是,.NET运行时使用垃圾收集器(GC)   清理并回收不再使用的对象所使用的内存   到达;因为它定期运行,这意味着点   你的对象被清理是不确定的。结果   这是因为那里的托管对象不存在析构函数   没有确定性的地方来运行它们。