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>
。
添加internal
或public
get
属性访问器为您entities
变量,并初始化entities
到在类实例化一个空列表。
此外,为什么你的所有类名(显然)全部是大写?
public abstract class ENVIRONMENT
{
private List<ENTITY> entities = new List<ENTITY>();
public List<ENTITY> Entities
{
get { return entities; }
}
...
}
啊,我忘了。我之前做了更正,将“列表”更改为“实体”,而不编辑我的帖子。我只让我的类名大写来组织我的文件。在一个解决方案中,我有两个不同的项目,每个项目都包含一个或多个具有相同名称的文件。 我试过这种方法,但它似乎没有让错误消失。它仍然表示实体在当前上下文中不存在。 – miiworld2
您可以添加一个引用来提出问题/错误的位置吗? –