日期:2014-05-17  浏览次数:20730 次

关于c#中指针的使用
我有一个需求需要使用指针,我创建了一个Parameter类来保存这个指针。
        
public unsafe AnimatorParameter(int* value,string name)
{
    _name   = name;
    _pValue = value;
}

public unsafe int GetValue()
{
    return *_pInt;
}

但是我担心垃圾回收会改变原来值的地址从而导致指针失效,请问我的担心对吗?还有如果确实会失效,那么有什么办法可以避免。
unsafe c#

------解决方案--------------------
用关键字fixed:
  fixed (byte* p = buffer)
            {
                if (!ReadFile(handle, p, 8192, &n, 0))
                {
                    return 0;
                }
            }