C# 不安全指针字段

本文关键字:字段 指针 不安全 | 更新日期: 2023-09-27 18:35:21

这会打破吗?它编译得很好,但基于读数,我不确定它是否保证_ptRef将始终指向构造函数中引用的结构。

我想我所说的"休息"是指...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。 这些曾经是引用类型,但内存开销太大。

-仅当搜索操作找到相关的 PointType0 时,才会返回 List,并且此列表会传递并操作很多。

C# 不安全指针字段

这不安全。

代码离开fixed块后,垃圾回收器可以再次自由移动内容。你想在这里完成什么?是否要使用列表中项的索引,而不是指针?