我有一个使用几个级别的类继承的应用程序。我想知道如果我有一个从基类派生的对象集合,例如只是
IEnumerable<BaseClass>
如果不是BaseClass,如何找到集合中所有对象的最高通用Type?
问候,
最佳答案
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;
}
}
此代码仅适用于实际的继承层次结构,不适用于接口层次结构。