1.今天在项目中,又发现内存暴增的情况,后来,调试,查看this变量,发现其中有一个Queue<T>成员,数据量很大,造成的。
因为在C#中,class是引用类型,如果它依附的对象,一直在内存里的话,那么它自己也会一直存在并占有内存。所以要么定义为临时变量,要么你就要在合适的时机,将它置为null(这时,它就会在随后的垃圾回收机制中被回收),或者你将它占有的内存量降低(在这里的话,你可以Dequeue掉一些成员)
2.今天还研究了一下C#中class与struct的异同。可以这样理解,如果你只想保存一些简单的数据,不需要C#中class的那些特性,你就定义为struct好了。
class是引用类型,而struct是值类型。