C#基础:构造函数与析构函数

2025-10-23 12:42:02

1、我们先写一个例子,

方便后面的讲解。

如下图:

C#基础:构造函数与析构函数

2、上步中我们定义了一个Person,

在Main()方法中,定义了一个Person的实例。

大家看看定义Person的语句,

Person person = new Person();

为什么要在new Person后面加一对括号呢。

我们在调用某一方法时,会使用括号。

这会不会也是在调用某一个方法呢。

是的,它是调用的Person类的构造方法。

C#基础:构造函数与析构函数

3、可是我们看到,Person类里空空如也。

没有定义任何的方法呀。

那么第一个知识点来啦:

当一个类,没有定义任何的构造方法时,

C#会自定添加一个没有任何参数的构造方法。

C#基础:构造函数与析构函数

4、下面我们定义一个构造方法,

并写代码验证new Person()语句,

调用了构造方法,

如下图:

C#基础:构造函数与析构函数

5、从上图中可见,

Main函数中只有一条new语句,

如果输出“Person构造方法”,

就说明:new语句调用了构造方法。

下图是输出结果:

C#基础:构造函数与析构函数

6、通过上图的输出结果,

可以得出,new语句确实调用了构造方法。

下面第二个知识点,构造方法的书写形式。

首先是权限描述符 public/protected/private。

然后方法名和类名一致,不能是其它的名字。后面是参数列表。

注意:构造函数不能有返回值,也不能加void。

C#基础:构造函数与析构函数

7、介绍了构造函数的写法,

下面讲构造函数的第三个知识点,

构造函数可以重载。

也就是说可以定义多个构造函数。

比如我们再定义有参数的Person构造方法。

如下图:

C#基础:构造函数与析构函数

8、那么问题来了,

此时有两个构造方法,

当定义Person类的实例时,

到底调用哪个构造函数呢?

这个需要根据New语句来判断。

New Person()语句,调用的就是无参的构造方法。

New Person("Tom")语句,调用的就是有参的构造方法。

下面写代码进行验证,调用有参的构造方法。

C#基础:构造函数与析构函数

C#基础:构造函数与析构函数

9、根据构造函数的特点,

实际编程中,可以使用构造函数传递类属性的初始值,

也可以在构造函数中,做一些必须的初始化工作。

如下图:

C#基础:构造函数与析构函数

10、下面说说析构函数,

析构函数是在类消亡的时候调用的,

由于C#是自定回收类机制,

所以没法手动调用到构造函数。

下面就演示一下,析构函数的写法吧

如下图:

C#基础:构造函数与析构函数

11、根据析构函数的特点:

在实际编程中,

把改类申请的资源,

都在析构函数中释放掉。

C#基础:构造函数与析构函数

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢