C#访问成员变量从一个类到另一个

C#访问成员变量从一个类到另一个

问题描述:

所以我正在处理两个文件:模拟器和环境。在环境文件中,我有一个名为“实体”的成员变量。它在那里定义,它有构造函数和get-set函数。我的Simulator类在其代码中包含该Environment类;带有一个构造函数和一个set-get函数。C#访问成员变量从一个类到另一个

现在我试图让环境类在模拟器类中工作。我现在的代码应该包含环境成员变量“实体”在我的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; } 
    } 
} 

编辑:早先我给了实体的另一个名称,那是List,所以我改了它。

我没有看到名为LIST的字段,但我看到名为entities的字段LIST<ENTITY>

添加internalpublicget属性访问器为您entities变量,并初始化entities到在类实例化一个空列表。

此外,为什么你的所有类名(显然)全部是大写?

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

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

啊,我忘了。我之前做了更正,将“列表”更改为“实体”,而不编辑我的帖子。我只让我的类名大写来组织我的文件。在一个解决方案中,我有两个不同的项目,每个项目都包含一个或多个具有相同名称的文件。 我试过这种方法,但它似乎没有让错误消失。它仍然表示实体在当前上下文中不存在。 – miiworld2

+0

您可以添加一个引用来提出问题/错误的位置吗? –