Wskaźniki typu ogólnego?

ok, więc chcę utworzyć klasę ogólną, która zmieni wartość typu danych. Powodem, dla którego chcę to zrobić, jest to, że mogę mieć metody cofania i ponawiania. Mógłbym napisać klasę dla każdego rodzaju wartości, którego potrzebuję. TO ZNACZY. double, int ... ale byłoby znacznie łatwiej, gdybym mógł utworzyć klasę ogólną, aby to zrobić.

To właśnie mam

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;
    }
}

To jest to czego chcę

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;
    }
}

ale daje mi to błąd Błąd „Nie można pobrać adresu, uzyskać rozmiaru lub zadeklarować wskaźnika do typu zarządzanego („ T ”)”

Czy jest lepszy sposób na zrobienie tego lub obejście tego błędu?

questionAnswers(4)

yourAnswerToTheQuestion