特别是,我正在考虑这样的场景:
unsafe struct Foo
{
public int Bar;
public Foo* GetMyAddr()
{
fixed (Foo* addr = &this)
return addr;
}
}
假设 Foo 存储在非托管内存中,我试图弄清楚在评估 GetMyAddr 中的固定语句所涉及的内容。作为程序员,我知道这个结构永远不在托管堆上,我只需要以最有效的方式在非托管内存中获取它的地址。我特别担心这里是否使用了任何锁定或原子操作,因为这会使其完全不合适。