天天看点

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("我被析构了");

       }

   }

C#基础之构造函数(Constructor)与析构函数(Destructor)构造函数析构函数
运行结果中,我们会发现当CLR发现类的实例不会被使用的时候就会调用类的析构函数

本篇相对来说是很容易理解的,本系列也是针对C#基础来说的。所以没有细说,见谅

转载请注名:小曲 @ CSDN