わかりましたので、データ型の値を変更するジェネリック クラスを作成したいと思います。これをやりたい理由は、元に戻すおよびやり直しメソッドを使用できるようにするためです。必要な値の型ごとにクラスを作成できます。IE 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')のアドレスを取得したり、サイズを取得したり、ポインターを宣言したりできません」というエラーが表示されます
これを行うためのより良い方法、またはこのエラーを回避する方法はありますか?