2011-09-18 44 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视图架构的角度是可以接受的。

希望这会有所帮助。