所以我正在使用两个文件:模拟器和环境。在环境文件中,我有一个名为“Entities”的成员变量。它在那里定义,它有构造函数和get-set函数。我的Simulator类的代码中包含了Environment类;使用构造函数和set-get函数。
现在我正在尝试使Environment类在Simulator类中工作。我现在的代码应该在我在Simulator类中编写的for循环代码中包含环境成员变量“Entities”。
我收到的错误是当前上下文中不存在变量成员。但是,我想让计算机知道成员变量来自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,所以我改了它。
答案 0 :(得分:0)
我没有看到名为LIST的字段,但我确实看到名为entities
的字段,类型为LIST<ENTITY>
。
为您的internal
变量添加public
或get
entities
属性访问器,并在类实例化时将entities
初始化为空列表。
另外,为什么所有的班级名称(显然)完全是大写的?
public abstract class ENVIRONMENT
{
private List<ENTITY> entities = new List<ENTITY>();
public List<ENTITY> Entities
{
get { return entities; }
}
...
}