在运行时获取对象的父类型

本文关键字:父类 类型 取对象 运行时 获取 | 更新日期: 2023-09-27 18:36:02

我已经为一个问题苦苦挣扎了一段时间,我不确定它是否有实际的解决方案。

我一直在尝试编写一个函数,该函数遍历某个对象类型的列表,并仅返回属于(或继承自)另一种类型的对象。

    public List<Entity> getEntities(Type t)
    {
        List<Entity> returnList = new List<Entity>();
        foreach (Entity e in entityList)
        {
            if (e is t)
            {
                returnList.Add(e);
            }
        }
        return returnList;
    }

这是我一直在使用的代码。问题是它不适用于变量,并且我找到的任何其他解决方案都不检查继承,这让我相信这不能在运行时完成。

有没有更好的方法来做我正在尝试的事情,或者我需要找到一个完全不同的解决方案?

谢谢!

在运行时获取对象的父类型

使用 Type.IsAssignableFrom 方法检查继承。https://msdn.microsoft.com/en-us/library/system.type.isassignablefrom(v=vs.110).aspx