2011-09-18 64 views
0

我有3類:如何泡了一個布爾值,從內包含的類外包含

class A 
{ 
    public B b = new B();  
    public bool flag {get; set;} 
} 

class B 
{ 
    piblic C c = new C(); 
} 


class C 
{ 
    public void foo() 
    { 
    //iterates a dataTable with column "someBoolCondition" 
    // I want to set A's bool to true, after the first record that has 'true' in column 
    //"someBoolCondition". Thus is thought to avoid bool memebers in each class. 
    } 
} 

什麼是最好的方式設定A的標誌爲「真」由C的富?

TIA

+1

你能用一些代碼來舉例說明你的描述嗎? –

+0

請粘貼一些代碼,不清楚「B」是嵌套類「A」還是「A」包含類型「B」的對象,以及「B」和「C」之間的關係。 –

回答

1

您的C可以在每次C更改自己的布爾值時觸發一個事件。你的A可以訂閱事件並自行更新。您還可以將A的抽象接口傳遞給b和C,以便讓他們直接推送更改。

0

又一個解決方案,最簡單的形式架構觀點,但我不清楚在特定情況下是否可以接受,只是在A類中具有static屬性。

public class A 
{ 
    private static bool failed = false; 
    public static bool Failed {get {return failed;} set {failed=value;}} 
} 

,並在您的FOO代碼()函數的地方:

foo(...) 
{ 
    //failure happens! 
    A.Failed = true; 
} 

這是簡單明瞭的,但要看是否從你的App視圖架構的角度是可以接受的。

希望這會有所幫助。