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