2014-01-22 105 views
0

我有一個類A和一個類B,這兩個類都需要與類C一起使用。在幾個實例之間共享數據

我想通過這門課AB以改變在A作出C將影響B使用的C對象的方式上C相同的情況下工作。

我看到要實現這一點的唯一方法是使用觀察者模式,但我很想知道是否有任何簡單的解決方案來解決這個問題。

+0

如果您傳遞相同的情況下,你不需要做任何事情,因爲這將是相同的實例。 –

+0

根據http://www.yoda.arachsys.com/csharp/parameters.html –

+0

我強硬的價值觀沒有通過參考,C類不是值類型 –

回答

5

假設的聲明類似以下內容並在構造函數中設置sharedC

class C{} 
class A { private C sharedC; } 
class B { private C sharedC; } 

你會使用C單一實例,並傳遞給的AB需要共享副本實例。

var c = new C(); 

var a = new A(c); 
var b = new B(c); 

其中一個最簡單的方法(假設Cclass,而不是一個struct

+0

+1。請注意,此代碼假定「C類」意味着「C類」:) –

+0

嘗試一下ATM,我有一個誤解,即你提出的建議在C#中是不可能的。 –