构造器(一种特殊的方法)
- 构造器(constructor)是类型的成员之一
- 狭义的构造器指的是“实例构造器”(instance constructor)
- 如何调用构造器
- 声明构造器
- 构造器的内存原理
构造函数译为构造器,成员函数译为方法,它们本质都还是函数。
默认构造器
namespace ConstructorExample{class Program{static void Main(string[] args){Student stu = new Student();Console.WriteLine(stu.ID);}}class Student{public int ID;public string Name;}}
默认构造器将int型的 ID 初始化为 0:
0请按任意键继续. . .
无参数默认构造器
namespace ConstructorExample{class Program{static void Main(string[] args){Student stu = new Student();Console.WriteLine(stu.ID);Console.WriteLine(stu.Name);}}class Student{public Student(){ID = 1;Name = "No name";}public int ID;public string Name;}}
输出:
1No name请按任意键继续. . .
带参数构造器
一旦有了带参数的构造器,默认构造器就不存在了。若还想调用无参数构造器,必需自己写。
namespace ConstructorExample{class Program{static void Main(string[] args){Student stu = new Student(2, "Mr.Okay");Console.WriteLine(stu.ID);Console.WriteLine(stu.Name);}}class Student{public Student(int initId,string initName){ID = init Id;Name = initName;}public int ID;public string Name;}}
输出:
2Mr.Okay请按任意键继续. . .
Code Snippet
ctor + TAB * 2:快速生成构造器代码片段
构造器内存原理
默认构造器图示
图中左侧代指栈内存,右侧代指堆内存。
注意栈内存分配是从高地址往低地址分配,直到分配到栈顶。
public int ID;// int 结构体 占4个字节public string Name;// string 引用类型 占4个字节 存储的是实例的地址
带参数构造器图示
Student stu = new Student(1, "Mr.Okay");



