如何将一个抽象列表转换为它的具体类型?

本文关键字:转换 类型 列表 抽象 一个 | 更新日期: 2023-09-27 18:03:07

我有以下设置;

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

i do the following;

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

我希望能够将数组元素转换为像这样的具体类型,但我得到一个错误;

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

我能做到这一点的唯一方法是创建一个临时变量并将其强制转换为数组。有没有一种方法,我可以做到这一点,而不创建临时变量?

如何将一个抽象列表转换为它的具体类型?

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