【发布时间】:2010-11-28 18:22:05
【问题描述】:
我有一个使用多个级别的类继承的应用程序。我想知道如果我有一个从基类派生的对象集合,例如简单的
IEnumerable<BaseClass>
如果不是 BaseClass,我如何找到集合中所有对象派生的最高通用类型?
问候,
【问题讨论】:
标签: .net class inheritance
我有一个使用多个级别的类继承的应用程序。我想知道如果我有一个从基类派生的对象集合,例如简单的
IEnumerable<BaseClass>
如果不是 BaseClass,我如何找到集合中所有对象派生的最高通用类型?
问候,
【问题讨论】:
标签: .net class inheritance
Type baseType = null;
foreach (var obj in objects)
{
if (baseType == null)
baseType = obj.GetType();
else
{
Type currentType = obj.GetType();
while (!baseType.IsAssignableFrom(currentType))
baseType = baseType.BaseType;
}
}
此代码仅适用于实际继承层次结构,不适用于接口层次结构。
【讨论】: