摘要
构造函数与析构函数是一个类中看似较为简单的两类函数但在实际运用过程中总会出现一些意想不到的运行错误本文将较系统的介绍构造函数与析构函数的原理及在C#中的运用以及在使用过程中需要注意的若干事项
一.构造函数与析构函数的原理
作为比C更先进的语言C#提供了更好的机制来增强程序的安全性C#编译器具有严格的类型安全检查功能它几乎能找出程序中所有的语法问题这的确帮了程序员的大忙但是程序通过了编译检查并不表示错误已经不存在了在错误的大家庭里语法错误的地位只能算是冰山一角级别高的错误通常隐藏得很深不容易发现
根据经验不少难以察觉的程序错误是由于变量没有被正确初始化或清除造成的而初始化和清除工作很容易被人遗忘微软利用面向对象的概念在设计C#语言时充分考虑了这个问题并很好地予以解决把对象的初始化工作放在构造函数中把清除工作放在析构函数中当对象被创建时构造函数被自动执行当对象消亡时析构函数被自动执行这样就不用担心忘记对象的初始化和清除工作
二.构造函数在C#中的运用
构造函数的名字不能随便起必须让编译器认得出才可以被自动执行它的命名方法既简单又合理让构造函数与类同名除了名字外构造函数的另一个特别之处是没有返回值类型这与返回值类型为void的函数不同如果它有返回值类型那么编译器将不知所措在你可以访问一个类的方法属性或任何其它东西之前 第一条执行的语句是包含有相应类的构造函数甚至你自己不写一个构造函数也会有一个缺省构造函数提供给你
class TestClass
{
public TestClass(): base() {} // 由CLR提供
}
下面列举了几种类型的构造函数
)缺省构造函数
class TestClass
{
public TestClass(): base() {}
}
上面已介绍它由系统(CLR)提供
)实例构造函数
实例构造函数是实现对类中实例进行初始化的方法成员如
using System;
class Point
{
public double x y;
public Point()
{
thisx = ;
thisy = ;
}
public Point(double x double y)
{
thisx = x;
thisy = y;
}
…
}
class Test
{
static void Main()
{
Point a = new Point();
Point b = new Point( ); // 用构造函数初始化对象
…
}
}