这会破裂吗?它编译得很好,但根据读数,我不确定它是否保证_ptRef总是指向构造函数中引用的结构。
我想通过'break'我的意思是...... GC会移动指针指向的结构(_ptRef)吗?
public unsafe class CPointType0
{
private PointType0* _ptRef = null;
public CPointType0(ref PointType0 spt)
{
fixed (PointType0 * pt = &spt)
{
_ptRef = pt;
}
}
...a bunch of property accessors to fields of _ptRef (accessed as return _ptRef->Thing) }
情景是
-PointType0是一个结构。
在数据结构的内存中有数百万个PointType0。这些曾经是引用类型,但是会有太多的内存开销。-A仅在搜索操作找到相关的PointType0时返回List,并且该List被传递并在一个批次上操作。
答案 0 :(得分:4)
这不安全。
代码离开fixed
块后,垃圾收集器可以自由地再次移动。你想在这里完成什么?您是否想要使用列表中项目的索引而不是指针?