欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » C#从入门到精通 » 正文

构造函数的解释与使用

创建时间:2013年10月14日 22:11  阅读次数:(2535)
分享到:
5.3.2析构函数
在类的实例超出范围时,为了确保它所占的资源能被回收,c#提供了析构函数专门用于释放被占用的系统资源。析构函数的名字与类名相同,只是在前面加上了一个符号"~"。在使用析构函数时,应注意以下几点:
■ 不能在结构中定义析构函数,只能对类使用析构函数。
■ 一个类只能有一个析构函数。
■ 无法继承或重载析构函数。
■ 无法调用析构函数,它们是被自动调用的。
■ 析构函数既没有修饰符,也没有参数。

我们无法控制何时调用析构函数,因为这是由垃圾回收器决定的。垃圾回收器检查是否存在应用程序不再使用的对象。如果垃圾回收器认为某个对象符合析构,则调用析构函数(如果有)并回收用来存储此对象的内存。程序退出时也会调用析构函数。我们可以通过调用Collect强制进行垃圾回收,但大多数情况下应避免这样傲,因为这样会导致性能问题。

【例5.5】创建一个控制台应用程序项目,声明了三个类,分别成继承关系,说明析构函数的声明和何时将被自动调用,并且说明了调用顺序(Ch05Ex05)。

(1),首先创建一个控制台应用程序项目,在代码编辑器中打开源文件Program.cs,在命在旦夕名空间中声明三个内部类,类First是基类,Second类是从First类派生的,而Third类是从Second类派生的。代码如下:
class First
{
~First
{
Console.WriteLine(“First’s destructor is called.”);
}
}

class Second:First
{
~Second
{
Console.WriteLine(“Second destructor is called.”);
}
}

class Third: Second
{
~ Third
{
Console.WriteLine(“Third destructor is called.”);
}
}

(2),在Program类的Main方法中编写以下代码:
Third t=new Third(); //创建类的实例

(3),可按”Ctrl+F5”组合键编译并运行程序,最后程序的结果如图5.8所示。


此示例创建了三个类,这三个类构成了一个继承链,并且都有析构函数。在Main()中,创建了派生程度最大的类的实例。在程序运行时,这三个类的析构函数将自动被调用,注意调用顺序是按照从派生程度最大的到派生程序最小的次序调用的,和构造函数的调用顺序正好相反。
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf】

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 0+17=? 的结果(结果是:17)
结  果: