我如何将抽象列表投射到它的具体类型

时间:2014-05-13 23:06:17

标签: c# list abstract

我有以下设置;

public abstract class StageObject
{
}
public class StageImage : StageObject
{
    public int Image;
}
public class StageStrip : StageObject
{
    public int Strip;
}

我执行以下操作;

StageList = new List<StageObject>();
StageList.Add(new StageStrip());
StageList.Add(new StageImage());

我希望能够像这样投射数组元素,因为它是具体的类型,但我得到一个错误;

(StageStrip) StageList[0].Strip = 2;

我能做到这一点的唯一方法是创建一个临时变量并将其强制转换为数组。有没有办法可以在不创建临时变量的情况下完成它?

1 个答案:

答案 0 :(得分:8)

((StageStrip)StageList[0]).Strip = 2;