C#中构造函数和析构函数的用法

来源:互联网 责任编辑:栏目编辑 发表时间:2013-07-01 03:38 点击:
摘 要:构造函数与析构函数是一个类中看似较为简单的两类函数,但在实际运用过程中总会出现一些意想不到的运行错误。本文将较系统的介绍构造函数与析构函数的原理及在C#中的运用,以及在使用过程中需要注意的若干事项。

  关键字:构造函数;析构函数;垃圾回收器;非托管资源;托管资源

  一.构造函数与析构函数的原理

  作为比C更先进的语言,C#提供了更好的机制来增强程序的安全性。C#编译器具有严格的类型安全检查功能,它几乎能找出程序中所有的语法问题,这的确帮了程序员的大忙。但是程序通过了编译检查并不表示错误已经不存在了,在“错误”的大家庭里,“语法错误”的地位只能算是冰山一角。级别高的错误通常隐藏得很深,不容易发现。

  根据经验,不少难以察觉的程序错误是由于变量没有被正确初始化或清除造成的,而初始化和清除工作很容易被人遗忘。微软利用面向对象的概念在设计C#语言时充分考虑了这个问题并很好地予以解决:把对象的初始化工作放在构造函数中,把清除工作放在析构函数中。当对象被创建时,构造函数被自动执行。当对象消亡时,析构函数被自动执行。这样就不用担心忘记对象的初始化和清除工作。

  二.构造函数在C#中的运用

  构造函数的名字不能随便起,必须让编译器认得出才可以被自动执行。它的命名方法既简单又合理:让构造函数与类同名。除了名字外,构造函数的另一个特别之处是没有返回值类型,这与返回值类型为void的函数不同。如果它有返回值类型,那么编译器将不知所措。在你可以访问一个类的方法、属性或任何其它东西之前, 第一条执行的语句是包含有相应类的构造函数。甚至你自己不写一个构造函数,也会有一个缺省构造函数提供给你。

class TestClass
{
 public TestClass(): base() {} // 由CLR提供

  下面列举了几种类型的构造函数

  1)缺省构造函数

class TestClass
{
 public TestClass(): base() {}
}

  上面已介绍,它由系统(CLR)提供。

  2)实例构造函数

  实例构造函数是实现对类中实例进行初始化的方法成员。如:

using System;
class Point
{
 public double x, y;
 public Point()
 {
  this.x = 0;
  this.y = 0;
 }

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • 用C#制作屏幕捕获程序
  • .NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上
  • 遍历ArrayList易犯错误
  • C#对XML操作:一个处理XML文件的类(1)
  • .NET简谈反射(动态调用)
  • 使用C#编写LED样式时钟控件
  • DataList嵌套问题 如何删除内层子DataList的记录
  • 怎样用C#实现完整文档打印功能
  • .NET简谈自定义事务资源管理器
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1