Указатели универсального типа?

Итак, я хочу создать универсальный класс, который изменит значение типа данных. Причина, по которой я хочу это сделать, заключается в том, что я могу использовать методы отмены и повторения. Я мог бы написать класс для каждого нужного мне значения. И.Е. double, int ... но было бы намного проще, если бы я мог создать универсальный класс для этого.

Это то, что у меня есть

class CommandChangeDouble : Command
{
    double _previous;
    double _new;
    double* _objectRef;

    public unsafe CommandChangeDouble(double* o, double to)
    {
        _objectRef = o;
        _previous = *o;
        _new = to;
        *_objectRef = _new;
    }

    public unsafe void Undo()
    {
        *_objectRef = _previous;
    }
    public unsafe void Redo()
    {
        *_objectRef = _new;
    }
}

это то, что я хочу

class CommandChangeValue<T> : Command
{
    T _previous;
    T _new;
    T* _objectRef;

    public unsafe CommandChangeValue(T* o, T to)
    {
        _objectRef = o;
        _previous = *o;
        _new = to;
        *_objectRef = _new;
    }

    public unsafe void Undo()
    {
        *_objectRef = _previous;
    }
    public unsafe void Redo()
    {
        *_objectRef = _new;
    }
}

но это дает мне ошибку Ошибка «Невозможно получить адрес, получить размер или объявить указатель на управляемый тип ('T')»

Есть ли лучший способ сделать это или способ обойти эту ошибку?

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

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