我前段时间编写了一个函数(针对.NET 3.5),现在我已升级到4.0
我无法正常工作。
该函数是:
public static class MemoryAddress
{
public static string Get(object a)
{
GCHandle handle = GCHandle.Alloc(a, GCHandleType.Pinned);
IntPtr pointer = GCHandle.ToIntPtr(handle);
handle.Free();
return "0x" + pointer.ToString("X");
}
}
现在,当我调用它时-MemoryAddress.Get(new Car(“ blue”))
public class Car
{
public string Color;
public Car(string color)
{
Color = color;
}
}
我得到错误:
对象包含非原始或不可复制的数据。
为什么它不起作用了?
现在如何获取被管理对象的内存地址?
皈依舞
月关宝盒