0

C# 问题。

我有一个继承层次结构,如下所示:

BaseController
    Object1Controller
    Object2Controller
    Object3Controller
        Object3_1Controller

对象 1 2 和 3 的实例使用基本控制器中的值计算值,但对象 3_1 没有。

这些对象可以附加其他对象,这些对象会在一段时间内修改基本值,然后将它们恢复为缓存值。(忽略这个 OO 噩梦的可怕影响:P)

我想做的是这样的:

class modifier<T>
T* pointerToValue
void assignModifiable(T*)

这样每个可修改的类都会创建一个修饰符并让它指向它想要修改的变量。c++ 等价物将是这样的:

template <class T> class ModifierInterface
{
    T* modifiableVariable;
    void setModifier( T &target )
    { modifiableVariable = target }

    void changeModifiable( T val )
    { modifiableVariable = val }
}
4

1 回答 1

2

这里的答案似乎是您的价值观的包装类:

class Modifiable<T>
{
    public T Value { get; st; }
    ...
}

class Object1Controller : ...
{
    public Modifiable<int> MyValue { get; private set; }
}

这并不完整,但这是我对你的问题的看法。AModifiable<int>将具有 a 的大多数属性int*

于 2013-10-09T14:48:14.653 回答