假设您需要存储一定数量的数据,这些数据由结构或类表示。您最多只能存储N个元素,如果要添加更多元素,则必须先删除现有元素。您可以使用任何存储数据的方式-列表,数组(如果需要,也可以使用其他任何方式)。在垃圾收集方面,是否使用类或结构表示信息是否有所不同?是否将其存储在列表或数组中会有所不同吗?我的直觉是最好的方法是使用结构数组,因为原则上GC永远不需要在这里收集任何东西(虽然该数组存储在堆中,但其大小保持不变,因此没有任何收集我相信?)。我不完全确定将如何表示结构列表-是否存在与添加/删除结构元素相关联的任何形式的垃圾回收?至于使用类而不是结构,我希望一旦将其从列表中删除或覆盖在数组中,则需要收集旧的引用,因此会给GC造成压力。如果我的直觉在这里是正确的,或者我在任何地方出错了,将不胜感激!谢谢示例代码:public struct SStruct{ int ABC;}public class SClass{ int ABC;}public class Test{ List<SStruct> _data1; List<SClass> _data2; SStruct[100] _data3; SClass[100] _data4; public void run() { var sStruct = new SStruct(); var sClass = new SClass(); if(data1.Count > 0) _data1.RemoveAt(0); if(data2.Count > 0) _data2.RemoveAt(0); _data1.Add(sStruct); _data2.Add(sClass); _data3[0] = sStruct; _data4[0] = sClass;}
1 回答
- 1 回答
- 0 关注
- 128 浏览
添加回答
举报
0/150
提交
取消