首先,我创建基类和继承类C#访问继承了基类的列表类的属性
public class Entity
{
public int EntityID;
public EntityType type = EntityType.NONE;
}
public class EntityObject : Entity
{
public Vector2 position;
public EntityObject()
{
position = Vector2.Zero;
type = EntityType.OBJECT;
}
}
然后我创建基类的列表来存储所有继承类
List<Entity> entityList = new List<Entity>();
entityList.Add(new EntityObject());
后来,我尝试访问列表中的继承类的成员
for(int i = 0; i < entityList.Count; i++)
if(entityList[i].type == EntityType.OBJECT)
entityList[i].position = Vector2.One;
是的,我得到一个错误:'实体'不包含“位置”的定义,并且没有可以找到接受“实体”类型的第一个参数的扩展方法“位置”(您是否缺少使用指令或程序集引用?)
是否有可能访问从基类列表继承类属性?
一个单独的考虑是你比较重量级'List'类时的使用你只需要一个'IEnumerable'实现。 –