析构函数,C#基础之构造函数(Constructor)与析构函数(Destructor)

忙了一段时间,终于清闲一点。花一点时间来写写博客也是件挺开心的事。我们来继续我们的C#基础课程讲解,今天我们要了解的是类的构造函数和析构函数

构造函数

构造函数是在类实例化时执行的方法,它没有返回值,而且名称与类名相同。构造函数在执行的时候会初始化类中的字段,为其赋为默认值(默认值大家可以在MSDN上进行查看)
如果类中没有显式声明构造函数,.net Framework会默认为我们创建一个该类的构造函数,他的作用就是初始华丽些资源,引用类型默认为null

构造函数大致可以分为三种类型:

1.实例化构造函数

有参的构造函数定义后,默认的构造函数就没有了。实例化构造函数是用来实例化对象的
class zzqupy
{
int age;
public zzqupy()
{//无参构造函数
Console.WriteLine("在被实例化的时候执行");
}
public zzqupy(int age)
{//有参构造函数
this.age = age;
}
}

2.静态构造函数

不允许有访问修饰符,访问类之前,静态构造函数首先被调用,而且只会补调用一次。静态构造函数是不允许有参数的。每个类只能有一个静态构造函数。给静态字段初始化,会默认生成一个静态构造函数,该静态构造函数将字段的初始化放在静态构造函数内部进行。这就说明,所有的静态字段的初始化都是在静态构造函数中完成的
class zzqupy
{
static int i;
static zzqupy()
{//静态构造函数,用来初始化静态字段
i = 10;
}
}

3.私有构造函数

不允许在类外部进行实例化。这涉及到设计模式上的课程了,我们在以后会进行讲解。这里不再过多讨论

析构函数

一个类只有一个析构函数
无法继承和重载析构函数
无法调用析构函数 (自动被调用 )
析构函数没有修饰符,也没有参数
class Program
{
static void Main(string[] args)
{
zzqupy zz = new zzqupy();
}
}
class zzqupy
{
~zzqupy()
{
Console.WriteLine("我被析构了");
}
}
image析构函数,C#基础之构造函数(Constructor)与析构函数(Destructor) 运行结果中,我们会发现当CLR发现类的实例不会被使用的时候就会调用类的析构函数
本篇相对来说是很容易理解的,本系列也是针对C#基础来说的。所以没有细说,见谅
转载请注名:小曲 @ CSDN
Tags:  析构函数私有 纯虚析构函数 php析构函数 虚析构函数 析构函数

延伸阅读

最新评论

发表评论