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

Итак, я хочу создать универсальный класс, который изменит значение типа данных. Причина, по которой я хочу это сделать, заключается в том, что я могу использовать методы отмены и повторения. Я мог бы написать класс для каждого нужного мне значения. И.Е. 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 : 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)

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