析构函数——垃圾回收器,它用来清理对象时调用
析构函数不能有参数,不能任何修饰符而且不能被调用,它是自动调用的,这是它与构造函数的一个主要区别。由于析构函数的目的与构造函数的相反,就加前缀‘~’以示区别。
class First
{
~First()
{
System.Diagnostics.Trace.WriteLine("First‘s destructor is called.");
}
}
class Second : First
{
~Second()
{
System.Diagnostics.Trace.WriteLine("Second‘s destructor is called.");
}
}
class Third : Second
{
~Third()
{
System.Diagnostics.Trace.WriteLine("Third‘s destructor is called.");
}
}
class TestDestructors
{
static void Main()
{
Third t = new Third();
}
}
这里用到了派生, 类 First 是基类,Second 是从 First 派生的,而 Third 是从 Second 派生的。 这三个类都有析构函数。 在 Main() 中,创建了派生程度最大的类的实例。构造函数——初始化,它用来在对象调用时进行初始化,下面是一段构造函数
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{
//调用默认构造函数
Employee objEmployee = new Employee();
Console .WriteLine ("资格=" + objEmployee_qualification);
Console .WriteLine ("薪水=" + objEmployee_salary);
}
}
class Employee
{
private string _name;
private char _gender;
private string _qualification;
private uint _salary;
//默认构造函数
public Employee ()
{
_qualification = "研究生";
}
}
}
构造函数本身无返回值,它不能直接调用,只有通过new运算符创建对象时才能调用,也就是上面所说的初始化类,还有一点需要注意:只有构造函数声明为公有时才能被调用,私有是不能被调用的。构造函数可以是有函数的,也可以是没有函数的。