2013-10-09 207 views
0

C#問題。c#變量指針

我有一個繼承層次結構,看起來像這樣:物體1 2和3計算使用在基本控制器的值的值的

BaseController 
    Object1Controller 
    Object2Controller 
    Object3Controller 
     Object3_1Controller 

實例,但對象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 } 
} 
+0

你可以使用'ref'。 –

+1

不管用指針。你必須釘住幾乎所有東西,你會嗆垃圾收集器。 –

+0

指針很少用於C#。 –

回答

2

答案在這裏似乎是你的價值觀的包裝類:

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

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

這是不完整的,但它是什麼我可以做你的問題。 A Modifiable<int>將擁有int*的大部分屬性。

+0

我需要使用@Daniel指出的ref關鍵字嗎? –

+0

不,只有參數被允許,你可以在沒有(很多)方法的情況下做到這一點。 –

+0

另外,我很抱歉,我的問題很混亂。我正在想辦法更完整的措辭。感謝您的幫助。 –