C#基础之构造函数(Constructor)与析构函数(Destructor)
来源:互联网 发布:编程入门 知乎 编辑:程序博客网 时间:2024/05/29 11:07
忙了一段时间,终于清闲一点。花一点时间来写写博客也是件挺开心的事。我们来继续我们的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("我被析构了");
}
}运行结果中,我们会发现当CLR发现类的实例不会被使用的时候就会调用类的析构函数
本篇相对来说是很容易理解的,本系列也是针对C#基础来说的。所以没有细说,见谅
转载请注名:小曲 @ CSDN
- C#基础之构造函数(Constructor)与析构函数(Destructor)
- 构造函数 与 析构函数 constructor and destructor
- C++ 构造函数constructor 与 析构函数destructor 的区别
- 构造函数(Constructor)析构函数(Destructor)怎么用?
- c++:构造函数(constructor)和析构函数(destructor)中编译器的隐式行为(implicit behavior)
- C#基础知识之构造函数Constructor
- js核心基础之构造函数constructor
- destructor(析构函数)
- 析构函数DESTRUCTOR
- 析构函数(destructor)
- C#之析构函数与构造函数
- (四)C#之构造函数与析构函数
- 函数属性__attribute__((constructor))和__attribute__((destructor))
- 函数属性__attribute__((constructor))和__attribute__((destructor))
- c#构造函数与析构函数
- c#构造函数与析构函数
- C# 构造函数与析构函数
- C# 构造函数与析构函数
- 【wiki百科】Unix哲学
- 一次11g rac无法启动处理过程
- Oracle 坏块 总结
- Android自带示例程序--Snake
- 云鹤平台与Force.com比较
- C#基础之构造函数(Constructor)与析构函数(Destructor)
- 由C#关键字ref想到的
- 使用Java实现内部领域特定语言
- 详解pctused与pctfree
- 有点找不到方向哦!
- 利用C++、scala等语言的运算符重载功能定制领域特定语言(DSL,Domain-Specific Language )
- 在compaq presario v3000安裝xp系統
- 用数据交换方式把表数据迁移到分区表实例
- VC++动态/静态链接库 【2】