小编Dan*_*son的帖子

泛型指针?

好吧所以我想创建一个将改变数据类型值的泛型类.我想这样做的原因是我可以使用撤消和重做方法.我可以为我需要的每种值类型编写一个类.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;
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我要的

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

    public unsafe CommandChangeValue(T* o, T to)
    {
        _objectRef = o;
        _previous = *o;
        _new …
Run Code Online (Sandbox Code Playgroud)

c# generics pointers value-type

8
推荐指数
3
解决办法
4762
查看次数

标签 统计

c# ×1

generics ×1

pointers ×1

value-type ×1