c# class 继承Object,是代码的运行,调用,封装等操作重要的一个关键词
c# GC GC是c#的垃圾回收装置,可以充当自动"delete" GC的回收条件 对象为null 对象没有被挂载(通常在方法组离开) using语句(不管是否挂载,结束统统抬走) 系统内存满了(可以设置)
所以可以用GC的"Bug"来这样做 举例:
public class SP { public string sl = "sl"; } public class Program { public static void Main() { SP d = null; string du= d.sl;//报错,null } }但这样
public class SP { public static SP De; public SP() { De = this; } public string sl = "sl"; } public class Program { public static void Main() { SP d = new SP(); SP dg = SP.De;//不会报错 } }是不是很神奇
原因 我说过GC回收必须触发条件,如果没有触发,就不会回收 很多人认为static就无法申明变量内存,其实不是,你发现我使用了De = this 这个就给GC一个暗示"这个类正在挂载,所以无法回收"这个信号,所以在这个的变量就传递给了De共享,除非De也为null,GC才会回收
<后续补充> { 2020-7-4 03:22 at <后续补充>, 2020-8-16 08:00 delete 73/119 change 45 leight delete 128/136 change 26 leight }