我有一个使用多个级别的类继承的应用程序。我想知道,如果我有一组从基类派生的对象,例如简单地
IEnumerable<BaseClass>
如果不是 BaseClass,我如何找到集合中所有对象派生的最高常见类型?
问候,
最佳答案
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;
}
}
此代码仅适用于实际继承层次结构,不适用于接口(interface)层次结构。
关于.NET - 如何从对象集合中找到最高公共(public)基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4298235/