我是C#的新手。这是一个Unity项目。
我从Room类初始化一个具有ArrayList类型的属性映射的room对象,如下所示:
Room room1 = new Room()
{
map = new ArrayList {
new ArrayList(new int[] { 1, 1 } ),
new ArrayList(new int[] { 1, 1 } ),
new ArrayList(new int[] { 1, 1 } )
}
}
然后我重写Room类的ToString()方法
public override string ToString()
{
return "Room ["+map.Count+","+map[0].Count+"]";
}
Debug.Log(room1);
结果错误:
“对象”不包含“计数”的定义且不可访问 扩展方法'Count'接受类型为'object'的第一个参数 被找到(您是否缺少using指令或程序集引用?)
如果我按以下方式更改ToString覆盖:
{
return "Room ["+map.Count+","+map[0]+"]";
}
然后是
的结果Debug.Log(room1);
是“房间[3,System.Collections.ArrayList]”
因此我得出了我得到错误的结论:
System.Collections.ArrayList不包含“计数”的定义
这是怎么回事?