一:基础的构造函数
实例化对象时 调用的函数,主要是用来初始化成员变量的。
在构造函数时,对象的初始化是自动完成的,为默认值,但为满足一些特殊数据的初始化操作。可不使用系统默认给的构造函数
基本语法:
构造对象时,对象的初始化过程是自动完成,但在初始化过程中的额外工作,如初始化数据,此时可利用构造函数
无返回值、函数名 = 类名、一般为public、可重载
重难点
-
用this语法重用代码
-
有参构造会顶掉默认的无参构造
Person p=new Person();会报错
-
每new 一个对象,就会调用一次构造函数
-
类中可自主声明无参构造函数,结构体中不可
快速生成构造函数 右击→“快速操作和重构”→“生成构造函数”→选择对象→确认
构造函数的声明及使用
class Custumer
{public string name; public int age;public void Custumer(){ Console.WriteLine("构造函数")}public void Custumer(string a1,int a2){ name=a1;age=a2;}public void Show(){Console.WriteLine(this.name);Console.WriteLine(this.age); }
}
Custumer WangWu=new Custumer();
Custumer ZhangSan=new Custumer("张三",17);
WangWu.Show();
ZhangSan.Show();
二:析构函数
当对象被垃圾回收时调用的,主要是用来回收资源或者特殊处理内存的
对于需要手动管理内存的语言(比如C++),需要在析构函数中做一些内存回收处理。C#中存在自动垃圾回收机制GC。 所以我们几乎不会怎么使用析构函数。除非你想在某一个对象被垃圾回收时,做一些特殊处理
注意:在Unity开发中析构函数几乎不会使用,所以该知识点只做了解即可
基本语法:
不写返回值、不写修饰符、不能有参数、函数名和类名相同、前面加~
//当引用类型的堆内存被回收时
//析构函数 是当垃圾 真正被回收的时候 才会调用的函数
~Person()
{
}