C#之析构函数与构造函数

      在学习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运算符创建对象时才能调用,也就是上面所说的初始化类,还有一点需要注意:只有构造函数声明为公有时才能被调用,私有是不能被调用的。构造函数可以是有函数的,也可以是没有函数的。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值