2016-05-03 6 views
-5

私は以下のクラスを持っています。私は今までの値を変更でき、すべての再帰的クラス(ルート内で宣言されたクラス)を最新の値にすることができます。 - そのようにどのように再帰的なクラスで変数を共有できますか?

public class A 
{ 
    List <A> ListA = new List<A>(); 
    private int _ever ; 
    public int ever 
    { 
     get {return _ever;} 
     set { 
       foreach(A a in ListA) 
       { 
        a.ever = value; 
       } 
      } 
    } 
} 

を唯一の「ルート」インスタンスがある場合は、フィールドstaticを作ることができる:値の変更は、あなたがプロパティを使用する必要がある場合、ロジックの実行を持っている

public class A 
{ 
    List <A> ListA= new List<A>; 
    int ever; 

} 
+0

私は正にあなたが達成しようとしているものを得ていません。より良い例を挙げてください。 –

+2

「静的」にすることができます。 – Quantic

+0

ここに投稿する前に尋ねる/達成しようとしていることを再帰的に評価してください.-) – SirH

答えて

0

値はクラスに関連付けられ、特定のインスタンスではありません。

0

フィールドを、リスト内の項目とすべての項目を設定するプロパティでラップすることができます。

循環参照がある場合はStackOverflowExceptionが表示されるので、これに注意してください。

public class A 
{ 
    private int _ever; 
    private List<A> _list = new List<A>(); 

    public int Ever 
    { 
     get { return _ever; } 
     set 
     { 
      _ever = value; 
      foreach (A a in _list) 
      { 
       a.Ever = value; 
      } 
     } 
    } 
} 
関連する問題