2016-12-04 22 views
-1

私はSimulatorとEnvironmentの2つのファイルを扱っています。環境ファイルには、"エンティティ"というメンバ変数があります。そこに定義され、コンストラクタとget-set関数を持っています。 My Simulatorクラスには、そのコードにEnvironmentクラスが含まれています。そのためのコンストラクタとset-get関数があります。C#あるクラスから別のクラスへのメンバー変数へのアクセス

これで、EnvironmentクラスをSimulatorクラス内で動作させようとしています。私が今持っているコードは、環境メンバ変数"エンティティ"を私のSimulatorクラスの中に書いたforループコードに含めることになっています。

私が受け取っているエラーは、変数メンバが現在のコンテキストに存在しないことです。しかし、私は、メンバー変数がEnvironmentクラスのものであることをコンピュータに知らせたいと思っています。このエラーを修正するにはどうすればよいですか?私はC#を使用しています。

これは私が持つ問題抱えているコードです:私のシミュレータクラスからrun()メソッド、

public void run() 
    { 
     for (int i = 0; i < 50 && entities.Count > 1; i++) 
     { 
      entities.RemoveAll(m => !m.IsAlive()); 

      step(i); 
     } 

    } 

をここでは、環境クラスです。

#region ENVIRONMENT CLASS 
    //__________________// 
// ENVIRONMENT // 
//__________________// 
public abstract class ENVIRONMENT 
{ 
    private List<ENTITY> entities; 

    public ENVIRONMENT() 
    { 
     entities = new List<ENTITY>(); 
    } 

    public void AddEntity(ENTITY e) 
    { 
     entities = new List<ENTITY>(); 
     entities.Add(e); 
     Random rand = new Random(); 

     foreach (ENTITY element in entities) 
     { 
      int locX = rand.Next(0, 9); 
      int locY = rand.Next(0, 9); 
      element.X = locX; 
      element.Y = locY; 

      //element.LocalPoint.X = locX; 
      //element.LocalPoint.Y = locY; 
     } 
    } 

    public ICollection<ENTITY> Population 
    { 
     get { return entities; } 
    } 
} 

EDIT:以前、私はEntitiesの別の名前を付けました。これはListだったので、私はそれを変更しました。

答えて

0

LISTという名前のフィールドは表示されませんが、entitiesという名前のLIST<ENTITY>というフィールドがあります。

は、あなたのentities変数のinternalまたはpublicgetプロパティアクセサを追加し、クラスのインスタンス作成時の空のリストにentitiesを初期化します。

また、なぜあなたのクラス名は(明らかに)完全に大文字ですか?

public abstract class ENVIRONMENT 
{ 
    private List<ENTITY> entities = new List<ENTITY>(); 

    public List<ENTITY> Entities 
    { 
     get { return entities; } 
    } 
... 
} 
+0

ああ、私は忘れました。私は自分の投稿を編集せずに "リスト"を "エンティティ"に変更して、修正を早めました。私はクラス名を大文字にしてファイルを整理しています。 1つのソリューションの下に2つの異なるプロジェクトがあり、それぞれに同じ名前の1つ以上のファイルが含まれています。 私はこのアプローチを試みましたが、エラーを消し去るようには見えません。エンティティが現在のコンテキストに存在しないことはまだあります。 – miiworld2

+0

問題/エラーが発生している場所への参照を追加できますか? –

関連する問題