Не обычно да, не возможно ... нет ... см. Выше

я есть функция, написанная некоторое время назад (для .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 (новый автомобиль («синий»))

public class Car
{
    public string Color;
    public Car(string color)
    {
        Color = color;
    }
}

Я получаю ошибку:

Объект содержит непримитивные или неблизкие данные.

Почему это больше не работает?

Как я могу теперь получить адрес памяти управляемых объектов?

Ответы на вопрос(8)

Ваш ответ на вопрос