我正在尝试编写一个包含数字生物体的模型。在模型中,我希望环境是一个固定的二维数组,但每个单元格都需要包含其中的生物列表。我尝试使用不规则数组,但由于占用元素的数量在程序运行过程中变化很大,所以需要使用比数组更灵活的东西。我已经尝试过制作类型为列表的二维数组,但出现了错误。
List<Creature>[,] theWorld;
public Environment()
{
List<Creature>[,] theWorld = new List<Creature>[100,100];
}
public void addCreature(Creature c)
{
for (int x = 0; x < 100; x++)
{
for (int y = 0; y < 100; y++)
{
theWorld[x, y].Add (c);
} } }
这是我试图在开始时声明数组类型(包含有机体列表)并在之后尝试将生物(c)添加到数组的每个元素中的列表的一段代码。
当我运行代码时,出现以下错误信息: "System.NullReferenceException" 类型的未处理异常发生在 HGT_sim_2.exe 中 。附加信息:对象引用未设置为对象的实例。" 并且高亮显示了 "World[x,y].Add(c);" 这一行。
如果有人能告诉我我的问题在哪里,甚至更好的话,提供一个解决问题的方法,那就太棒了。谢谢!