第四课 第一节 结构与GC机制

1.结构
--struct关键字
--struct 结构名{};
--级别与类一致。
--结构中可以定义字段、属性、方法、构造函数、可以用new来实例化对象。
--结构里面的字段不能赋初始值。
--结构不能包含显示的无参数函数变量(自动生成隐式无参构造函数)。
--在结构中的构造函数必须为字段赋初始值。在结构的构造函数为属性赋值,不认为是对字段赋值(属性不一定操作字段)。
--结构是一个值类型,在传递结构变量时,会将结构对象里的每一个字段复制一份,然后拷贝到新的结构变量的字段中。
--不能定义字段属性。

2.结构的使用
--表示一个轻量级的对象的时候,就可以定义为结构,提高速度。

3.内存垃圾的回收
--分配在栈空间的变量,一旦执行完其所在的作用域,这个变量就会
被CLR回收。
--分配早堆里面的对象,当没有任何变量引用它的时候,这个对象就
被标记为“垃圾对象”,等待垃圾回收器回收。
--GC(垃圾回收)会定时的清理堆空间中的垃圾对象。
--程序员无法控制GC清理垃圾的频率,CLR会自动控制。

4.GC类
--GC.Collect(); //强制对所有代进行回收
--GC.GetGeneration(p);//得到指定的对象所在的代

5.析构函数
--不能有访问修饰符,不能有参数
--在对象被垃圾回收器回收的时候,析构函数被GC自动调用
--~类名(){code;}
--析构函数不能被继承或重载,不能被程序员调用,GC会自动调用

(新手学习笔记,如有错误,请联系我,帮我更好的学习C#。)

原文地址:https://www.cnblogs.com/AspireSoumns/p/4947354.html