2
我寫了一個包裝了指向int以下不安全類的搬遷:C#指針和值類型變量
unsafe class PtrWrapper
{
public PtrWrapper(ref int val)
{
fixed (int* ptr = &val)
{
m_ptr = ptr;
}
}
public int Value
{
get { return *m_ptr; }
set { *m_ptr = value; }
}
int * m_ptr;
}
我測試過它,它似乎很好地工作,但是我剛剛再次讀取固定reference,它看起來像一個指針的所有操作應該在語句中來完成:
沒有固定,指針移動管理變量將是 沒有多大用處,因爲垃圾收集可能相對不可預知地發生變化 。
那麼,有可能在我調用Value屬性的時候,指針被重新定位在內存中,我的指針指向其他東西?我知道如果指出者超出範圍,我會遇到問題,但是我將如何使用我的課程來說明問題。所以我問搬遷的值類型變量,其而不是超出了範圍。