在学习C#时这两个函数放到一起讲了,听课的时候感觉只是有了肤浅的认识,于是查了一些资料,下面做个比较全面的理解。
析构函数——垃圾回收器,它用来清理对象时调用
析构函数不能有参数,不能任何修饰符而且不能被调用,它是自动调用的,这是它与构造函数的一个主要区别。由于析构函数的目的与构造函数的相反,就加前缀‘~’以示区别。
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运算符创建对象时才能调用,也就是上面所说的初始化类,还有一点需要注意:只有构造函数声明为公有时才能被调用,私有是不能被调用的。构造函数可以是有函数的,也可以是没有函数的。
时间: 2024-10-14 22:14:36