как вывести bool из внутреннего содержимого класса во внешний класс содержит - PullRequest
0 голосов
/ 18 сентября 2011

У меня есть 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 в 'true' из foo C?

TIA

Ответы [ 2 ]

1 голос
/ 18 сентября 2011

Ваш C может запускать событие каждый раз, когда C меняет свой бул. Ваш А может подписаться на событие и обновить себя. Вы также можете передать абстрагированный интерфейс от A до b и C, чтобы позволить им напрямую передать изменения.

0 голосов
/ 18 сентября 2011

Еще одно решение, простейшая форма архитектурной точки зрения, но мне не ясно, приемлемо ли это в вашем конкретном случае, это просто иметь свойство 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;
}

Это просто и понятно, но это зависит от того, приемлемо ли это с точки зрения архитектуры вашего приложения.

Надеюсь, это поможет.

...