21 面向对象编程基础之构造函数与析构函数

在上一篇中,我们讨论了面向对象编程中的属性与方法。接下来,我们将深入了解构造函数和析构函数,这两个概念在C#中扮演着重要的角色。它们是对象生命周期中至关重要的部分,了解它们能帮助你更好地管理对象的创建与销毁。

什么是构造函数

构造函数是一个特殊的方法,用于初始化类的新实例。构造函数的名称与类名相同,并且没有返回类型。它通常用于设置初始值。

构造函数的基本语法

1
2
3
4
5
6
7
8
9
10
11
12
public class Person
{
public string Name;
public int Age;

// 构造函数
public Person(string name, int age)
{
Name = name;
Age = age;
}
}

构造函数示例

下面是一个具体的示例,展示了如何使用构造函数初始化一个 Person 类的对象。

1
2
3
4
5
6
7
8
9
10
class Program
{
static void Main(string[] args)
{
// 使用构造函数创建一个Person对象
Person person1 = new Person("Alice", 30);

Console.WriteLine($"Name: {person1.Name}, Age: {person1.Age}");
}
}

在这个例子中,我们创建了一个 Person 对象 person1,并通过构造函数将名字和年龄初始化为 “Alice” 和 30。

什么是析构函数

析构函数是一个特殊的方法,用于在对象被垃圾回收前清理资源。析构函数的名称与类名相同,但在前面带有一个波浪号 ~。在C#中,析构函数不需要手动调用,.NET运行时会自动调用它。

析构函数的基本语法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Person
{
public string Name;
public int Age;

// 构造函数
public Person(string name, int age)
{
Name = name;
Age = age;
}

// 析构函数
~Person()
{
// 进行必要的清理工作
Console.WriteLine($"{Name} 的析构函数被调用。");
}
}

析构函数示例

以下是一个完整的示例,演示了当对象被销毁时析构函数的调用。

1
2
3
4
5
6
7
8
9
10
11
12
13
class Program
{
static void Main(string[] args)
{
{
Person person2 = new Person("Bob", 25);
Console.WriteLine($"Name: {person2.Name}, Age: {person2.Age}");
}

// 这里person2超出范围,程序结束时会调用析构函数
Console.WriteLine("程序结束,开始回收资源。");
}
}

在这个例子中,当 person2 超出作用域时,C# 的垃圾回收机制将会调用 ~Person 的析构函数,输出 "Bob 的析构函数被调用。"

小结

构造函数和析构函数是C#面向对象编程中非常重要的概念。构造函数用于对象的初始化,而析构函数用于对象的清理。在实际开发中,合理地使用构造函数和析构函数能提高代码的可读性和可维护性。

在上一篇中,我们讨论了类中的属性与方法,这些属性与方法通常会在构造函数中进行初始化。同时,在对象不再使用时,析构函数则负责释放资源,确保不会造成内存泄漏。

下一篇中,我们将探讨异常处理,具体内容包括异常的种类及其处理方式。了解异常处理将为你构建更健壮的应用程序打下基础。

21 面向对象编程基础之构造函数与析构函数

https://zglg.work/csharp-zero/21/

作者

IT教程网(郭震)

发布于

2024-08-13

更新于

2024-08-13

许可协议

分享转发

复习上节

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论