在运行时获取对象的父类型
Getting an object's parent type on runtime
我已经为一个问题苦苦挣扎了一段时间,我不确定它是否有实际的解决方案。
我一直在尝试编写一个函数来遍历特定对象类型的列表,并且 returns 仅遍历属于(或继承自)另一种类型的对象。
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;
}
这是我一直使用的代码。问题是 is 不适用于变量,我发现的任何其他解决方案都不检查继承,这让我相信这不能在运行时完成.
是否有更好的方法来完成我正在尝试的事情,或者我是否需要找到一个完全不同的解决方案?
谢谢!
使用Type.IsAssignableFrom方法检查继承。
https://msdn.microsoft.com/en-us/library/system.type.isassignablefrom(v=vs.110).aspx
我已经为一个问题苦苦挣扎了一段时间,我不确定它是否有实际的解决方案。
我一直在尝试编写一个函数来遍历特定对象类型的列表,并且 returns 仅遍历属于(或继承自)另一种类型的对象。
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;
}
这是我一直使用的代码。问题是 is 不适用于变量,我发现的任何其他解决方案都不检查继承,这让我相信这不能在运行时完成.
是否有更好的方法来完成我正在尝试的事情,或者我是否需要找到一个完全不同的解决方案?
谢谢!
使用Type.IsAssignableFrom方法检查继承。 https://msdn.microsoft.com/en-us/library/system.type.isassignablefrom(v=vs.110).aspx